0

Android アプリに含めたい 2 つの UI コンポーネントがあります。

1 つ目は、(ラジオ ボタンのような) テキストで、挿入されたシャドー バブルにタップ/クリックされたときのテキストです。

ラジオボタン

HTML デモを参照してください: http://fiddle.jshell.net/Vq2A3/1/show/

2 つ目はドラッグ可能なカードで、ドラッグすると大きな影が目立ちます。

ドラッグ可能なカード

HTML デモを参照してください: http://fiddle.jshell.net/yVnz4/2/show/

Android でこれらのものを実装する慣用的な方法は何ですか?つまり、2 状態コンポーネント、角丸形状、インセット シャドウ、変更可能なボックス シャドウ、ドラッグ?

Android を学びたいので、既製のコンポーネントは必要ありません。これを行う方法を説明するリソースへのリンクを好みます。

回答ありがとうございます。

4

3 に答える 3

0

ボタンに対してできるもう1つのことは、画像ボタンを使用し、onClickでボタンの画像を変更することです。myButton.setImageDrawable(Image_drawable);

于 2013-03-09T00:52:32.573 に答える
0

9パッチの画像を使用するのが最善の方法のようです。

その他の興味深い解決策:

関連スレッド:Androidのカスタムシェイプに影を追加

于 2013-03-15T10:31:52.877 に答える
0

たとえば、xmlファイルでコーナー、シャドウなどを設定できます

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" >
        <shape>
            <solid
                android:color="#449def" />
            <stroke
                android:width="1dp"
                android:color="#2f6699" />
            <corners
                android:radius="3dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
    <item>
        <shape>
            <gradient
                android:startColor="#449def"
                android:endColor="#2f6699"
                android:angle="270" />
            <stroke
                android:width="1dp"
                android:color="#2f6699" />
            <corners
                android:radius="4dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
</selector>

ドラッグ ボタンの場合は、次のようにしてください。

      button.setOnTouchListener(new OnTouchListener() {
         public boolean onTouch(View v, MotionEvent me){
             if (me.getAction() == MotionEvent.ACTION_MOVE  ){
                LayoutParams params = new LayoutParams(v.getWidth(), v.getHeight(),(int)(me.getRawX() - (v.getWidth() / 2)), (int)(me.getRawY() - (v.getHeight())));
                v.setLayoutParams(params);
             }
             return true;
         }
     });

多くの例があります。Google で検索します。例: 「カスタム ボタン」、「ドラッグ アンド ドロップ ボタン」

于 2013-03-08T22:44:03.343 に答える