我的问题是如何在Android上制作一组可点击的图片。
我可以使用ShapeDrawable创建一个可点击的球体,但是我想一次制作多个球体,并且仍然能够获得所有球体的点击次数。
此外,我想按照我的意愿将它们放在屏幕上,而不是像布局那样自动定位。
球体的数量可以随地方而变化。
这是我用来制作一个的代码:
Main.java
package com.teste;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.Toast;
public class Main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout layout = new LinearLayout(this);
CustomDrawableView mCustomDrawableView = new CustomDrawableView(this, 100, 100, 50, 50, 0xff74AC23);
CustomDrawableView mCustomDrawableView2 = new CustomDrawableView(this, 10, 10, 50, 50, 0xffffffff);
mCustomDrawableView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getBaseContext(), "Clicked green ball", Toast.LENGTH_SHORT).show();
}
});
mCustomDrawableView2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getBaseContext(), "Clicked white ball", Toast.LENGTH_SHORT).show();
}
});
layout.addView(mCustomDrawableView);
layout.addView(mCustomDrawableView2);
setContentView(layout);
}
}
CustomDrawableView.java
package com.teste;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.drawable.ShapeDrawable;
import android.graphics.drawable.shapes.OvalShape;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
public class CustomDrawableView extends View {
private ShapeDrawable mDrawable;
public CustomDrawableView(Context context, int i, int j, int k, int l, int m) {
super(context);
LayoutParams params = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
super.setLayoutParams(params);
mDrawable = new ShapeDrawable(new OvalShape());
mDrawable.getPaint().setColor(m);
mDrawable.setBounds(i, j, i + k, j + l);
}
protected void onDraw(Canvas canvas) {
mDrawable.draw(canvas);
}
}
希望你能提供帮助:)
答案 0 :(得分:0)
它应该像制作你的clas一样简单
CustomDrawableView extends View implements OnClickListener {
// all your code here
public void onClick(View v) {
// your callback function here
}
}
看一下我前一段时间在这个答案中写的一个例子:Android onClick method doesn't work on a custom view