我发现了这个链接,它指出了如何使我的
然后在xml文件中我执行以下操作:
ImageButton
具有发光效果。因此,每当用户按下ImageButton
时,就会调用onTouchEvent()
函数,在那里我调用setImageBitmap()
函数。问题是这个函数(setImageBitmap()
)似乎没有任何效果。
有效的部分:
1)到目前为止,我已经扩展了ImageButton
,如下所示:
// Pen.java
public class Pen extends ImageButton {
public Pen(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
System.out.println("Now I am setting Pen");
return true;
}
}
然后在 Activity 中创建 Pen
(自定义的 ImageButton
)实例,定义 setGlow()
并从 Pen
实例调用 setImageBitmap()
。
// MainActivity.java
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Pen myImgbutton;
myImgbutton = (Pen) findViewById(R.id.pen);
myImgbutton.setImageBitmap(setGlow(R.drawable.pen));
}
}
public Bitmap setGlow(int resourceId) {
......
}
无法正常工作的内容:
1)与上述相同(在Android中扩展一个ImageButton),但这次我是从onTouchEvent()函数中调用setImageBitmap函数。对于这种情况,我在Pen.java中定义了setGlow函数。
// Pen.java
public class Pen extends ImageButton {
public Pen(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
System.out.println("Now I am setting Pen");
// Here I say to apply the glow effect to the image
setImageBitmap(setGlow(R.drawable.pen));
return true;
}
public Bitmap setGlow(int resourceId) {
....
}
}
然后在xml文件中我执行以下操作:
.....
<com.example.testsetimagebmp.Pen
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/pen"
android:background="@drawable/pen" />
....
最后在MainActivity中
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
// ....
}
onTouchEvent
被调用了吗? - shhpMainActivity
中调用setImageBitmap
,它可以正常工作。但是在onTouchEvent
中却无法正常工作? - shhpsetImageBitmap()
后添加invalidate()
。 - idunnololz