こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

画像の位置指定の数字を変えても、位置が変わりません! 何がいけないので

画像の位置指定の数字を変えても、位置が変わりません! 何がいけないのでしょうか?

package com.cute.yukari;

import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.View;

public class cutecreate extends Activity {
private SampleView mView;
private Bitmap mBitmap;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

mBitmap = BitmapFactory.decodeResource(getResources(),
R.drawable.yukari1
); mView = new SampleView(this);
setContentView(mView);
}

private class SampleView extends View {
private Paint mPaint;
private float imageX = 0f;
private float imageY = 0f;

public SampleView(Context context) {
super(context);
mPaint = new Paint();
}


@Override
protected void onDraw(Canvas canvas) {


//画像表示
canvas.drawBitmap(mBitmap,
imageX - mBitmap.getWidth() / 50, ←ここの数字を変えても25以降位置が変わりません。
imageY - mBitmap.getHeight() / 50, ←25より少なくすると多少は移動するのですが…
mPaint);
}


}
}

投稿日時 - 2010-10-12 21:02:32

QNo.6245733

暇なときに回答ください

質問者が選んだベストアンサー

> mBitmap.getWidth() / 50, ←ここの数字を変えても25以降位置が変わりません。

/が除算を表していること、intをintで割った結果はintになることは把握できているでしょうか。

たとえばmBitmap.getWidth()の値が24だった場合、
・mBitmap.getWidth() / 12の結果は 2
・mBitmap.getWidth() / 13の結果は 1
 ...
・mBitmap.getWidth() / 24の結果は 1
・mBitmap.getWidth() / 25の結果は 0
・mBitmap.getWidth() / 26の結果は 0
 ...
となるので、この場合除数を25から増やしていっても除算の結果が変わらないのは当然です。

除算の結果をintではなくfloatにしたければ、
mBitmap.getWidth() / 50f
のように書きます。

投稿日時 - 2010-10-12 21:54:38

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問