0

カスタムビュー(カスタマイズされたボタン)を作成しているときに私が抱えている小さな画像スケーリングの問題について誰かが私を助けてくれるかどうか私はさまよっていましたか?そこで、カスタムコンストラクターといくつかのメソッドを使用してカスタムビュークラスを作成しました。

public class GamesButton extends View {
public int imageID;
public Bitmap image;
public GamesButton(Context context, AttributeSet attrs) {
    super(context, attrs);
}
public GamesButton(Context context, int resImage) {
    super(context);
    this.imageID = resImage;
    this.image = BitmapFactory.decodeResource(context.getResources(),imageID);
    setFocusable(true);
    setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            // do something
        }
    });
    setClickable(true);
}
public void onDraw(Canvas canvas) {
    Paint textPaint = new Paint();
    textPaint.setColor(Color.BLACK);
    canvas.drawBitmap(image,0 , 0,null);

}
   .
   .
   .

onMeaure()などもオーバーライドしましたが、ここではカスタムビューサイズは問題になりません。

問題は、ボタンまたはクリックするサーフェスとして使用するビットマップイメージです。画像全体が画面に表示されるように拡大縮小することはできません。

これに対処する方法はありますか?

ありがとうございました!

4

1 に答える 1

0

ボタンの背景を 9patch イメージ ファイルに設定することで、カスタム ボタンを作成できます。セレクターを使用して、ボタンの状態ごとに異なる 9patch イメージ ファイルを使用することもできます。これは、onDraw() をオーバーライドするよりもはるかに簡単です。

于 2012-06-19T16:39:32.770 に答える