3

Android開発を始めたばかりです。私はこのように作成された非常にシンプルなボタンを持っています:

<Button
    android:id="@+id/howItWorksButton"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="58dp"
    android:text="@string/how_it_works_button_title" />

コードでは、背景色を設定します。

howItWorksButton.setBackgroundColor(Color.RED);

これはonClickListenerです:

howItWorksButton.setOnClickListener(new OnClickListener()
    {
        public void onClick(View view)
        {
            Intent intent = new Intent(MainMenuActivity.this, HowItWorksActivity.class);
            MainMenuActivity.this.startActivity(intent);
        }
    });

問題は、クリックしても、押されたばかりのようには見えず、そのままで、変更がないことです。そのonClickメソッドは問題なく機能し、機能的にはすべて問題ありませんが、すべてのボタンが押されたときと同じように、何らかの形で変更されたように見せたいと思います。

4

4 に答える 4

7

手動で色を設定した場合、AndroidはiOSとは異なり、押された状態を自動的に表示しません。これを行うための推奨される方法は次のとおりです。

値フォルダーにcolors.xmlフォルダーを配置します。内容はこんな感じです。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="white">#ffffffff</color>
    <color name="darkwhite">#ffeeeeee</color>
    <color name="transparent">#00ffffff</color>
    <color name="semitransparent">#88000000</color>
    <color name="orange">#ffff8800</color>
    <color name="light_orange">#ffe27d18</color>
    <color name="light_blue">#ff00a2e8</color>
    <color name="black">#ff000000</color>
    <color name="menuButtonColor">#ffea8e44</color>
</resources>

たとえば、セレクタファイルをドローアブルに配置します

my_button_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/light_orange" android:state_pressed="true"/>
    <item android:drawable="@color/orange"/>
</selector>

このようにセレクターを使用してください

<Button
    android:id="@+id/howItWorksButton"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="58dp"
    android:text="how_it_works_button_title"
    android:background="@drawable/my_button_selector" />
于 2013-02-26T14:12:29.977 に答える
2

これを試して、

を使用しSelectorます。

 <?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:drawable="@drawable/login_btn" android:state_pressed="false"/>
<item android:drawable="@drawable/login_btn_focus" android:state_pressed="true"/>

</selector>
于 2013-02-26T13:44:04.690 に答える
0

ボタンが押されたとき、フォーカスされたとき、無効にされたときに表示したい画像または色をAndroidに伝えるには、画像セレクターを背景として設定する必要があります...ここに例があり ますhttp://www.mkyong.com/ android / android-imagebutton-selector-example /

于 2013-02-26T13:43:28.293 に答える
0

と他のandroid:state_pressed=" "両方に書き込みます。pressedstate

ボタンを押したとき

<item android:state_pressed="true">
    <shape>
        <solid android:color="@color/green" />
        <corners android:radius="@dimen/btn_corner_rds" />
    </shape>
</item>

ボタンが押されていないとき

<item android:state_pressed="false">
    <shape>
        <solid android:color="@android:color/transparent" />
        <stroke android:width="@dimen/stroke_width_btn"  />
        <corners android:radius="@dimen/btn_corner_rds" />
    </shape>
</item>
于 2017-09-09T14:26:48.810 に答える