Ich habe eine Ansicht in der Benutzeroberfläche, die technisch eine erweiterte ImageView innerhalb eines RelativeLayout ist, die ich lieber nicht ändern würde, wenn möglich. Ich möchte ein Drawable aus Ressourcen (ein kleines PNG mit einem Farbverlauf oder einem Rahmen) an bestimmten Koordinaten als visuelles Feedback zeigen, wenn Benutzer den Bildschirm tippen (es gibt sogar einen onShowPress Callback). Was ist der einfachste Weg, dies zu tun? Ich möchte nicht die layout.xml ändern, aus denen UI aufgeblasen wird, und ich bin nicht zu begeistert über onDraw überschreiben, um zusätzliche Arbeit dort zu tun.
Antwort
Zu viele Anzeigen?Dies ist eine einfache Möglichkeit, dies mit der Klasse View Animation zu tun:
final ImageView aboutButton = (ImageView) findViewById(R.id.AboutButton);
aboutButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Animation myAnim2 = AnimationUtils.loadAnimation(LaunchActivity.this, R.anim.buttons);
aboutButton.startAnimation(myAnim2);
myAnim2.setAnimationListener(new AnimationListener() {
public void onAnimationEnd(Animation animation) {
//do on click after animation ends
Intent intent = new Intent(LaunchActivity.this, MyDialog.class);
startActivity(intent);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationStart(Animation animation) {
//change the backround of the button etc on click etc...
}
});
}});