标签:android android-5-0-lollipop android-button alpha
我有这个代码,适用于自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,android-5-0-lollipop,android-button,alpha 来源: https://codeday.me/bug/20190725/1529268.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。