私はアンドロイドグラフィックプログラミングが初めてです。キャンバスの中央にビットマップを配置したい。したがって、私は使用します:
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();
ただし、変更によって問題が解決する理由はわかりません。