【问题标题】:Android Create a rectangle within an image viewAndroid 在图像视图中创建一个矩形
【发布时间】:2013-04-27 15:28:24
【问题描述】:

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

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

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

【问题讨论】:

    标签: android collision-detection area rect


    【解决方案1】:

    扩展图像视图。覆盖 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.
           }
         }
    
           }
    

    【讨论】:

    • 谢谢两位,但是我没有使用OnDraw方法也没有Canvas,我的图像没有绘制,而是文件夹drawable中的png图像,没有使用OnDraw方法是没有办法的和画布?=(
    • 您可以有一个背景图像并在其上绘制矩形。检查编辑
    • 但是这样可以检查两个矩形之间是否有交集?
    • 是的,你可以。您所需要的只是坐标。有一些游戏库可以帮助检测碰撞检测。 stackoverflow.com/questions/13537322/….
    • 感谢链接,但目前我想实现一些更简单的东西,只是为了学习,我刚开始学习Android^^
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-13
      • 1970-01-01
      • 2020-01-09
      • 1970-01-01
      • 2016-01-30
      相关资源
      最近更新 更多