アプリに特定の機能を呼び出すボタンがあり、その前に、システムはその特定の機能が利用可能かどうかを確認し、利用できない場合は次を実装します。
XML:
<Button
android:id="@+id/button_speak"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_gravity="center_vertical"
android:layout_marginLeft="2dp"
android:layout_marginRight="1dp"
android:layout_weight="1"
android:background="@drawable/purple_btn"
android:drawableTop="@drawable/icon_headphones_btn"
android:gravity="center"
android:padding="15dp"
android:text="Listen!"
android:textColor="@color/black"
android:textSize="20dp"
android:textStyle="bold" />
コード:
speakBtn.setEnabled(false);
speakBtn.setText("Speak NOT\nSUPPORTED");
speakBtn.setBackgroundResource(R.drawable.grey_btn);
speakBtn.setTextSize(12);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
params.weight = 1;
speakBtn.setLayoutParams(params);
speakBtn.setGravity(Gravity.CENTER);
見通し:
ボタン: 有効
ボタン: 無効 (文言は Listen NOT supported である必要があります...)
質問:
ボタンが無効になると、 を使用してボタンの背景が変更され.setBakgroundResource
、ボタンの背景リソースが変更されますが、アイコンは上がります!
アイコンを元の場所にとどめ、ボタンの背景とテキストだけを変更するにはどうすればよいでしょうか? (少なくとも、アイコンはボタンの一番上まで移動しません)
ありがとう!