【发布时间】:2016-08-19 13:59:47
【问题描述】:
我找到了this 链接,该链接说明了如何在我的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被调用了吗? -
您的意思是,如果您在
MainActivity中调用setImageBitmap,它会起作用。但是它在onTouchEvent中不起作用? -
@shhp 是的,如果从 onTouchEvent 调用它不起作用
-
您可以尝试在致电
setImageBitmap()后添加invalidate()。 -
当您尝试使用 imageView 而不是 Imagebutton 时?它仍然发生?
标签: android bitmap android-drawable android-bitmap bitmapimage