我是 android 图形编程的新手。我想在画布的中心放置一个位图。因此,我使用:
public void onDraw(Canvas canvas) {
float canvasx = (float) canvas.getWidth();
float canvasy = (float) canvas.getHeight();
然后我调用我想使用的位图,
Bitmap myBitmap = BitmapFactory.decodeResource(getResources(),
R.drawable.myBitmap);
然后我使用这些找到我的位图的坐标位置,
float bitmapx = (float) myBitmap.getWidth();
float bitmapy = (float) myBitmap.getHeight();
float boardPosX = (canvasx - bitmapx) / 2;
float boardPosY = (canvasy - bitmapy) / 2;
最后,我使用绘制位图,
canvas.drawBitmap(myBitmap, boardPosX, boardPosY, null);
但是,位图不在画布的中心。它略低于我认为应该是画布中心的位置。
在 onDraw() 方法中获取画布高度和宽度是否正确?知道有什么问题吗?提前致谢。
*编辑 :
最后,我通过改变使它工作
public void onDraw(Canvas canvas) {
float canvasx = (float) canvas.getWidth();
float canvasy = (float) canvas.getHeight();
至
public void onDraw(Canvas canvas) {
float canvasx = (float) getWidth();
float canvasy = (float) getHeight();
但是,我不知道为什么更改可以解决我的问题。