我有这个代码,适用于自API 14以来的每个版本,但在Android 5.0(Lollipop)上运行不正常.
下面是我想要按钮出现的方式.
点击button1
buttonArrivals.getBackground().setAlpha(180);buttonDepartures.getBackground().setAlpha(255);
点击button2
buttonArrivals.getBackground().setAlpha(255);buttonDepartures.getBackground().setAlpha(180);
在Lollipop版本上,按钮显示的是相同的Alpha,但我从未设置相同的Alpha.我只是使用上面的代码.
更新24/11/2014
这是按钮的xml(autoResizebutton extends button)
br.com.timo.gru.util.autoResizebutton androID:ID="@+ID/buttonArrivals" androID:layout_wIDth="0dp" androID:layout_height="match_parent" androID:layout_weight="2" androID:background="#00abbd" androID:drawableleft="@drawable/icon_aviao_desemb" androID:drawablepadding="-5dp" androID:drawableStart="@drawable/icon_aviao_desemb" androID:gravity="center" androID:paddingEnd="0dp" androID:paddingleft="2dp" androID:paddingRight="0dp" androID:text="@string/chegadas" androID:textcolor="@androID:color/white"br.com.timo.gru.util.autoResizebutton androID:ID="@+ID/buttonPartIDas" androID:layout_wIDth="0dp" androID:layout_height="match_parent" androID:layout_weight="2" androID:background="#00abbd" androID:drawableleft="@drawable/icon_aviao_partIDa" androID:drawablepadding="-5dp" androID:drawableStart="@drawable/icon_aviao_partIDa" androID:ellipsize="end" androID:gravity="center" androID:text="@string/partIDas" androID:textcolor="@androID:color/white"
解决方法:
内部colorState(由colorDrawable使用)在这两个按钮(优化)之间共享,因此每当您在一个按钮的背景上更改Alpha时 – 其他按钮也会得到此更改.
您可以尝试在更改其Alpha之前改变背景drawable:
buttonArrivals.getBackground().mutate().setAlpha(180);buttonDepartures.getBackground().mutate().setAlpha(255);
您还可以阅读Romain Guy关于为什么会发生这种情况的详细解释:http://curious-creature.org/2009/05/02/drawable-mutations
但是,您似乎尝试使用AndroID选择器轻松实现某些功能.您可以为每个按钮状态指定不同的颜色(在您选择/未选择的情况下),因此在您的代码中您只需要更新状态:
buttonArrivals.setSelected(true);buttonDepartures.setSelected(false);
选择器看起来像:
<?xml version="1.0" enCoding="utf-8"?><selector xmlns:androID="http://schemas.androID.com/apk/res/androID"> <item androID:color="#ff00abbd" androID:state_selected="true" > </item> <item androID:color="#b400abbd" androID:state_selected="false"> </item></selector>
总结 以上是内存溢出为你收集整理的android – 在版本5上使用getBackground().setAlpha的按钮 – 棒棒糖无法正常工作全部内容,希望文章能够帮你解决android – 在版本5上使用getBackground().setAlpha的按钮 – 棒棒糖无法正常工作所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)