2

嗨,我想知道如何在 imageview 中创建一个矩形。正如您在图片中看到的(http://i.stack.imgur.com/ZCpdT.png)我需要创建一个内部和外部的矩形,这用于确定与外部的碰撞没有问题,但可以似乎没有创建内部的。为了创建内部的,我这样做了:

Rect r1 = new Rect(Object1.x, Object1.y, Object1.x + Bounds1.width(),  Object1.y + Bounds1.height());

对于内部的人曾想过做同样的事情,但将所有值减半,但不起作用=(

4

2 回答 2

2

我认为您必须编写自定义 imageview 扩展 ImageView 并覆盖 onDraw 方法。在上面画一个矩形。

于 2013-05-03T09:16:50.157 回答
0

扩展图像视图。覆盖 Draw 并绘制一个矩形

   public class ExtendedImageView extends ImageView {
    public void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    Paint paint = new Paint();
    paint.setColor(Color.BLACK);
    paint.setStrokeWidth(3);
    canvas.drawRect(50, 50, 80, 80, paint);
   }
 }

编辑:

     public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ExtendedImageView ev= new ExtendedImageView(this);
    ev.setBackgroundResource(R.drawable.ic_launcher);// set background
    setContentView(ev);
}

class ExtendedImageView extends ImageView {
        public ExtendedImageView(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
    }

        public void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        Paint paint = new Paint();
        paint.setColor(Color.BLACK);
        paint.setStrokeWidth(3);
        canvas.drawRect(300, 300, 100, 100, paint);// draw rectangle on it.
       }
     }

       }
于 2013-05-03T09:21:33.253 回答