Ich fand this Link, der angibt, wie ich den Leuchteffekt auf meinem ImageButton
machen könnte. Also, wann immer der Benutzer die ImageButton
Funktion drückt, wird die onTouchEvent()
Funktion aufgerufen und dort rufe ich die setImageBitmap()
Funktion an. Das Problem ist, dass diese Funktion (setImageBitmap()
) überhaupt keine Wirkung hat.Warum hat setImageBitmap keine Auswirkungen auf benutzerdefiniertes ImageButton?
Was funktioniert:
1) Bisher habe ich die ImageButton
wie unten
// 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;
}
}
dann innerhalb Aktivität erweitert ich schaffen Pen
(custom ImageButton
) Beispiel definieren setGlow()
und setImageBitmap()
von Instanz Pen
nennen.
//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) {
......
}
Was nicht funktioniert:
1) alle gleiche wie oben (eine Image in android erstreckt), aber dieses Mal rufe ich die setImageBitmap Funktion von innen onTouchEvent(). Für diesen Fall habe ich setGlow Funktion im Innen Pen.java
// 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) {
....
}
}
dann in XML-Datei definieren tun I:
.....
<com.example.testsetimagebmp.Pen
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/pen"
android:background="@drawable/pen" />
....
schließlich in MainActivity
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
// ....
}
Wird 'onTouchEvent' aufgerufen? – shhp
@shhp Ja, es ist – pokche
Sie meinen, wenn Sie 'setImageBitmap' in' MainActivity' aufrufen, funktioniert es. Es funktioniert jedoch nicht in 'onTouchEvent'? – shhp