4

カスタムサークルボタンを作成するにはどうすればよい ですか? (円をクリックするだけ)

サークルpngファイルで作る方法はありますか?

imageView オーバーライド onTouch メソッドを試してみましたが、view.getWidth()、view.getHeight()、および view.getTop... メソッドの動作が非常に悪いため、動作が非常に悪いです。

public boolean inCircle(MotionEvent e, int radius, int x, int y) {
    int dx = (int) (e.getX() - x);
    int dy = (int) (e.getY() - y);
    double d = Math.sqrt((dx * dx) + (dy * dy));
    if (d < radius)
        return true;
    return false;
}

ありがとう。

4

4 に答える 4

4

とてもシンプルです。カスタム形状のドローアブルを作成し、それをビューの背景として設定します。例:

drawable/ の round_button_drawable.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval" >
    <solid android:color="@android:color/holo_orange_dark"/>
</shape>

このドローアブルを任意のビューの背景として設定します。

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/round_button_drawable"
    android:text="btn"
/>
于 2013-06-06T03:02:28.700 に答える
0

別の方法は、そのメソッドを拡張Buttonしてオーバーライドすることです。次に、 usingメソッドonDrawで円を描くことができます。canvascanvas.drawCircle

メソッドcircle.pngを使用してキャンバスにファイルを描画することもできますDrawable.draw

于 2012-08-03T08:57:49.250 に答える
0

あなたの目的を果たすことができるImageButtonクラスがあります..

于 2012-08-03T08:57:49.980 に答える
0

複雑なロジックを使用しないでください。丸みを帯びた画像を選択し、その画像をシンプルなボタンの背景として設定すると、シンプルな丸いボタンのように見え、その丸い形でのみクリックが受け入れられます。

于 2012-08-03T09:15:10.527 に答える