Android でシンプルなカスタム コントロールを作成し、その上に背景画像を配置しました。コントロールがさまざまなサイズでレイアウトに配置されている場合 (つまり、引き伸ばされている場合)、具体的には次のような問題があります。
元の画像のピクセル位置を知っている特定の位置とサイズで長方形をオーバーレイしたいと思います。どうすれば自分のコントロールでこれを行うことができますか。9 パッチなので、このようなことは不可能だと思います。オリジナルの上/左からのパーセンテージを計算するのが私の最善の策ですか、それとも一部の部分が伸びて一部が伸びないことを考えると、それは無意味ですか?
カスタム コントロールでは、コンストラクターで次のように画像を設定します。
setBackgroundResource(R.drawable.buttonbt);
これはうまく機能していますが、プロパティの変更に応じて変更したい場合があるため、最初は onDraw イベントで描画したかったのです。
Bitmap b=BitmapFactory.decodeResource(getResources(), R.drawable.buttonbt);
canvas.drawBitmap(b, 0, 0, null);
ただし、これはバウンディング ボックスのサイズに応じてサイズを変更するのではなく、単に元のサイズに合わせてスケーリングせずに表示しようとしています。これをどのように行いますか (前者の方法が優れているかどうか)。
ありがとう。