将backgroundtint应用于API 19的可绘制背景

背景颜色正确地应用在API 23上,但不是在API 19上。我怎样才能得到可绘制的API 19和以下?

<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。

Solutions Collecting From Web of "将backgroundtint应用于API 19的可绘制背景"

这在API19设备上工作,支持lib 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> 

您需要使用Android支持库22.1+使用AppCompatButton http://android-developers.blogspot.se/2015/04/android-support-library-221.html

但不幸的是,你将无法在XML中做到这一点。

在你的活动的创造,到以下内容:

 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); } } 

更多信息: 棒棒糖的backgroundTint对button没有影响

提示:也许你将能够在xml中使用app:backgroundTint =“@ color / button_material_light”来做所有事情,但是我没有testing过。

– 编辑 –

检查@ ema3272第二个评论为完整的解决scheme