Android 如何制作一组可点击的图形对象?

Android 如何制作一组可点击的图形对象?,android,clicklistener,Android,Clicklistener,我的问题是如何在Android上制作一组可点击的图像 我可以使用ShapeDrawable制作一个可点击的球体,但是我想一次制作多个球体,并且仍然能够在所有球体中获得点击 此外,我想根据自己的意愿在屏幕上定位它们,而不是像布局那样自动定位 球体的数量和位置可以改变 这是我用来制作一个的代码: Main.java package com.teste; import android.app.Activity; import android.os.Bundle; import android.vie

我的问题是如何在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);
    }
}

希望你能帮上忙:

这应该和制作课程一样简单

CustomDrawableView extends View implements OnClickListener {
    // all your code here

    public void onClick(View v) {
          // your callback function here
    }
}
看看我不久前在这个答案中写的一个例子: