0
У меня есть изображение (мяч) его растровое изображение и оно перемещается во всех направлениях на экране, потому что я беру onDraw (canvas) в AnimatedView.java, работая отлично.Нажмите событие при перемещении изображения
Мои требования: Я хочу нажать на изображение, но, к сожалению, весь экран принимает это событие.
Пожалуйста, помогите мне.
Как получить событие click только на картинке? Чтобы я мог продолжить развитие.
Вот код:
MainActivity
public class MainActivity extends Activity {
Context context;
int count=0;
EditText text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
AnimatedView animatedView=(AnimatedView) findViewById(R.id.anim_view);
animatedView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EditText text=(EditText) findViewById(R.id.editText1);
ImageView imageView=(ImageView) findViewById(R.drawable.ball);
v.startAnimation(AnimationUtils.loadAnimation(MainActivity.this, R.anim.animation));
}
});
animatedview.java:
public class AnimatedView extends ImageView{
private Context mContext;
int x = -1;
int y = -1;
private int xVelocity = 10;
private int yVelocity = 5;
private Handler h;
private final int FRAME_RATE = 30;
BitmapDrawable ball;
public AnimatedView(Context context, AttributeSet attrs) {
super(context, attrs);
mContext = context;
h = new Handler();
}
private Runnable r = new Runnable() {
@Override
public void run() {
invalidate();
}
};
@Override
protected void onDraw(Canvas c) {
BitmapDrawable ball = (BitmapDrawable) mContext.getResources().getDrawable(R.drawable.ball);
if (x<0 && y <0) {
x = this.getWidth()/2;
y = this.getHeight()/2;
} else {
x += xVelocity;
y += yVelocity;
if ((x > this.getWidth() - ball.getBitmap().getWidth()) || (x < 0)) {
xVelocity = xVelocity*-1;
}
if ((y > this.getHeight() - ball.getBitmap().getHeight()) || (y < 0)) {
yVelocity = yVelocity*-1;
}
}
c.drawBitmap(ball.getBitmap(), x, y, null);
h.postDelayed(r, FRAME_RATE);
}
main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="#000000">
<com.example.example.AnimatedView
android:id="@+id/anim_view"
android:layout_width="fill_parent"
android:layout_height="420dp"
android:onClick="imageClicked" />
</LinearLayout>
я жду прошлых 1 часов никто не может ответить на мой вопрос, славу и, для response.i я новый андроида, я не в состоянии справиться с этим сложным кодом , но я должен это сделать, если вы не возражаете, вы измените мой код. Если ур свободен только в противном случае, я попробую – vishnub1626
Да! tav, я знаю, что его маленький комплексный код специально для новичка. Но если у вас есть знание Canvas и как его использовать, вы можете это понять. И если не ошибаетесь, это соответствует вашему требованию. –
Я выполнил код ур. Я нашел 2 метода (bm_w = bmpTorch.getWidth(); bm_h = bmpTorch.getHeight()) в mainactivity.i не могу понять .will u пожалуйста, выполните мой код – vishnub1626