backgroundTint
はAPI 23には正しく適用されますが、API 19には適用されません。API19以下の描画可能な色合いを取得するにはどうすればよいですか?
<Button
Android:layout_width="40dp"
Android:layout_height="40dp"
Android:id="@+id/AbResetBtn"
Android:background="@Android:drawable/stat_notify_sync"
Android:backgroundTint="@color/button_material_light" />
もちろん、私のActivity
はAppCompatActivity
を拡張しています。
これはAPI 19デバイス、サポートライブラリv7で私のために働きました
レイアウト
<Button
Android:id="@id/btn"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="@string/label"
style="@style/Button"
/>
スタイル
<style name="Button" parent="Base.TextAppearance.AppCompat.Button" >
<item name="backgroundTint">@color/fab_bg</item>
</style>
私はその少し古い質問を知っていますが、スタイル要素を作成する必要さえありません。
サポートライブラリのappCompatButtonをapp:名前空間で使用するだけです。
<Android.support.v7.widget.AppCompatButton Android:layout_width="40dp"
Android:layout_height="40dp"
Android:id="@+id/AbResetBtn"
Android:background="@Android:drawable/stat_notify_sync"
app:backgroundTint="@color/button_material_light" />
AppCompatButtonを使用するには、Androidサポートライブラリ22.1+を使用する必要があります http://Android-developers.blogspot.se/2015/04/Android-support-library-221.html
ただし、残念ながらxmlでこれを行うことはできません。
アクティビティのonCreateで、次のようにします。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
AppCompatButton v = (AppCompatButton) findViewById(R.id.mybutton);
ColorStateList csl = new ColorStateList(new int[][]{new int[0]}, new int[]{0xffffcc00});
v.setSupportBackgroundTintList(csl);
}
}
詳細はこちら: LollipopのbackgroundTintはボタンに影響を与えません
ヒント:おそらく、app:backgroundTint = "@ color/button_material_light"を使用してxmlですべてを実行できる可能性がありますが、私はテストしていません。
-編集-
完全なソリューションについては、@ ema3272の2番目のコメントを確認してください
「ボタン」を「androidx.appcompat.widget.AppCompatButton」に、「Android:backgroundTint」を「app:androidTint」に更新する必要があります
前:
<Button
Android:id="@+id/button"
Android:layout_width="200dp"
Android:layout_height="0dp"
Android:textColor="@color/colorAccent"
Android:backgroundTint="@color/colorAccent"
Android:background="@drawable/empty_list_state_button"
Android:text="@string/button_title"
app:layout_constraintTop_toBottomOf="@id/distance"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
Android:layout_marginTop="16dp"
Android:layout_marginBottom="16dp"
/>
後:
<androidx.appcompat.widget.AppCompatButton
Android:id="@+id/button"
Android:layout_width="200dp"
Android:layout_height="0dp"
Android:textColor="@color/colorAccent"
app:backgroundTint="@color/colorAccent"
Android:background="@drawable/empty_list_state_button"
Android:text="@string/button_title"
app:layout_constraintTop_toBottomOf="@id/distance"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
Android:layout_marginTop="16dp"
Android:layout_marginBottom="16dp"
/>