我们有一个TextView,其中包含来自应用资源的drawable-left和drawable-right。在某些设备上,如
我们正面临一个奇怪的问题。可绘制的将显示为半透明/透明。在其他设备上,如
drawable将正确显示。
这是布局定义的剪切:
<TextView
android:id="@+id/button_current_warnings"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginTop="3dp"
android:gravity="center_vertical"
android:background="@drawable/selector_classic_list_item"
android:layout_gravity="center_vertical"
android:drawablePadding="8dp"
android:drawableLeft="@drawable/ic_classic_current_warning_white"
android:drawableRight="@drawable/ic_classic_row_arrow"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:maxLines="2"
android:ellipsize="end"
android:text="@string/current_warnings"
android:textSize="?attr/warningGermanyBoxTextSize"
android:textColor="?attr/itemFavoriteTitleTextColor"/>
在HTC One V设备上,这种布局看起来非常不错:
在Sony Xperia L上,由于imageview drawables的透明度,布局被打破。两个drawable只显示了一点点:
此外,如果我们将drawable更改为另一个,则两个设备上的结果都很好:
HTC:
索尼:
此外,我附上了用于我当前测试的两个drawable(它们都是白色的,因此你不会在这里看到任何东西):
错误显示drawable:
更正显示的drawable:
有没有人遇到同样的问题或对我们有任何提示?
更新:在我的代码中,我只在此TextView上设置了ClickListener:
buttonGermany = returnView.findViewById(R.id.button_current_warnings);
buttonGermany.setVisibility(View.VISIBLE);
buttonGermany.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Do something
}
});
答案 0 :(得分:2)
我在Android 4.1.2(Jelly Bean)设备上只遇到过这个问题。图标半透明呈现的问题与4.1.2中的drawables缓存有关。就我而言,我在drawable-selector中使用了错误的ic_classic_current_warning_white-drawable:
<selector xmlns:android="schemas.android.com/apk/res/android"; android:exitFadeDuration="@android:integer/config_mediumAnimTime">
<item android:state_pressed="false" android:state_focused="true" android:drawable="@drawable/ic_classic_current_warning_white"/>
<item android:state_pressed="true" android:drawable="@drawable/ic_classic_current_warning_white"/>
<item android:drawable="@drawable/ic_classic_current_warning_black"/>
</selector>
此选择器用于上一个活动中的按钮。如果我触摸此按钮,则会显示上面的视图。通过使用android:exitFadeDuration
ic_classic_current_warning_white-drawable在触摸我的按钮后淡出。但是,当新活动打开时,似乎可绘制缓存包含对ic_classic_current_warning_white-drawable的引用,其alpha值低于100%。如果我在下一个视图中再次使用此drawable,它不会显示100%alpha,但在离开上一个活动时会显示alpha值。
我目前的解决方案只是复制drawable ic_classic_current_warning_white。一个将用于选择器。另一个副本将用于&#34;静态&#34;目的。