gpt4 book ai didi

java - 如何在 Canvas 的右上角绘制位图

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:02:30 25 4
gpt4 key购买 nike

我正在尝试在 Canvas右上角 上绘制位图

到目前为止,我已经完成了以下工作:

//100x40 dimensions for the bitmap
bitmap = BitmapFactory.decodeResource(getResources(),
R.drawable.backbutton);

Rect source = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
Rect bitmapRect = new Rect(0, 0, canvasWidth -200,50);

canvas.drawBitmap(bitmap, source, bitmapRect, paint);

问题是当我运行应用程序时,位图没有出现在屏幕上。完整代码:

public class MyView extends View {
Rect bitmapRect;
public MyView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}

public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
}

@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas); //To change body of overridden methods use File | Settings | File Templates.

Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.backbutton);

Rect source = new Rect(0,0,bitmap.getWidth(), bitmap.getHeight());
bitmapRect = new Rect(0,0, bitmap.getWidth(), bitmap.getHeight());

canvas.drawBitmap(bitmap, source, bitmapRect, new Paint());

}

@Override
public boolean onTouchEvent(MotionEvent event) {
int x = (int)event.getX();
int y = (int)event.getY();
if(null != bitmapRect && bitmapRect.contains(x,y)){
Toast.makeText(view.getContext(), "this works", Toast.LENGTH_LONG).show();
}


return super.onTouchEvent(event); //To change body of overridden methods use File | Settings | File Templates.
}

有人可以帮我吗?

最佳答案

在 Rect bitmapRect 下的 MyView 中;制作变量

public int width;
public int height;

然后在你的 MyView 类中把这个方法放在那里

@Override
protected void onSizeChanged (int w, int h, int oldw, int oldh)
{
width = w;
height = h;
}

现在你有了你正在使用的 Canvas 的宽度和高度然后在你的 onDraw() 方法中像这样制作 bitmapRect

bitmapRect = new Rect(width -200,0, width, 50);

我认为问题是你如何得到它你的矩形中有一个负数并且它正在反转位图,当你使用带有矩形的绘图命令时,一个是你要绘制的源,一个是将要绘制的目的地

关于java - 如何在 Canvas 的右上角绘制位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18777340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com