3

長方形の領域全体ではなく、表示されている領域でのみクリックできる半ドーナツ型のボタンを作成したいと考えています。

http://i.stack.imgur.com/MKD45.png

クリックして、この青い領域だけに影響を与えたい。

4

2 に答える 2

1

これを行うには、 のBitmap表現をButton取得してから、x/y ピクセルのアルファ値をテストします。

ボタンのビットマップを取得するには:

Bitmap buttonBmp;
button.setDrawingCacheEnabled(true);
buttonBmp = Bitmap.createBitmap(button.getDrawingCache());
button.setDrawingCacheEnabled(false);

ボタンをタッチするたびに新しいビットマップを作成しないように、これを 1 回だけ実行して結果を保存することをお勧めします。

次に、ボタンの onTouchEvent をオーバーライドして、ユーザーがタップしたローカルの x/y を取得します。そのスポットのアルファが 0 の場合、クリックできない領域があります。ほど単純onClickListenerではありませんが、機能するはずです。

このようにして、ドーナツだけでなく、任意の形状を使用できます。色、質感、何でも。

于 2013-07-24T18:58:39.750 に答える