【问题标题】:how to set drawBitmap to be not fullscreen如何将drawBitmap设置为非全屏
【发布时间】:2011-12-13 22:18:59
【问题描述】:

我有一张位图,我画成这样:

bit = BitmapFactory.decodeResource(getResources(),
                   R.drawable.anim_ctrl_panel);
Paint paint = new Paint();
canvas.drawBitmap(bit, 80, 440, paint);

问题是图像设置为全屏。在onTouchEvent 方法中,我为位图实现了事件,并且在我选择屏幕的任何地方都实现了该事件。我希望图像具有一定的位置,并且仅用于该位置来实现事件。我该怎么做?

编辑:问题出在 onTouchEvent 方法上。这是解决方案:

public boolean onTouchEvent(MotionEvent event) {if(80 <= event.getX() && event.getX()<= (80+bit.getWidth()/2) && (440 <= event.getY() && (event.getY() <= 440+bit.getHeight()))){   
            //...
        }else if((80+bit.getWidth()/2) <= event.getX() && event.getX()<= (80+bit.getWidth()) && (440 <= event.getY() && (event.getY() <= 440+bit.getHeight()))){
            //...
            }

帮帮我:How can I check the Image is Touched using OnTouch()

【问题讨论】:

    标签: android bitmap draw touch-event


    【解决方案1】:

    对于特定区域的图像集,我认为矩形对此很有用,

    类似这样的东西,(在我的情况下它对我有用)

    Canvas canvas = new Canvas(bitmap);
    final Paint paint = new Paint();         
    final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());         
    paint.setAntiAlias(true);         
    canvas.drawARGB(0, 0, 0, 0);         
    canvas.drawBitmap(bitmap, rect, rect, paint);
    

    试试看。

    更多信息请查看Android - Drawing (Core)

    谢谢。

    【讨论】:

    • 我得到了同样的东西......我的问题是 onTouchEvent 方法......我只放了这个:if (event.getX() > bit.getWidth() / 2) 和我也应该为 y 设置条件,对吧?
    • 制作一个特定的 ImageView 对象并使用矩形和画布固定高度和宽度(无论您需要什么),然后为该 perticluar 视图实现 onTouch。 (根据我理解你的问题)。谢谢。
    • 或进行计算,getX 任何 getY 进行触摸,并设置 if 条件以检查它是否在图像的矩形坐标中,然后随心所欲。
    • 如果您发现这是解决方案,请点赞并接受作为正确答案。它可以帮助您,也可以帮助其他用户。谢谢。 :-)
    【解决方案2】:

    试试这个:

    canvas.save();
    canvas.translate(posX, posY);
    canvas.drawBitmap(bit, 0f, 0f, paint);
    canvas.restore();
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    • 1970-01-01
    相关资源
    最近更新 更多