当前位置: 首页 > 知识库问答 >
问题:

ImageView在某些设备上显示可绘制的半透明/透明

梅安平
2023-03-14

我们有一个TextView,其中包含应用程序资源中的可抽屉-左和可抽屉-右。在一些设备上

  • 运行Android 4.1.2的索尼Xperia L,
  • 三星Galaxy Young或
  • 三星Galaxy SII

我们正面临一个奇怪的问题。可拉拔件将显示为半透明/透明。在其他设备上,如

  • 三星Galaxy S4(4.4.2)或
  • HTC ONE V(4.0.3)

可抽屉将正确显示。

这是布局定义的剪裁:

        <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设备上,这个布局看起来相当不错:

在索尼Xperia L上,由于imageview抽屉的透明度,布局被打破了。两个抽屉都只显示了一点点:

此外,如果我们将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
        }
     });

共有1个答案

赵炯
2023-03-14

我只在Android 4.1.2(果冻豆)设备上遇到过这个问题。图标的半透明表示的问题与4.1.2中可缩写的缓存有关。在我的例子中,我也在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在触摸我的按钮后被淡出。但是,在打开新活动时,drawable缓存保存了一个alpha值低于100%的对ic_classic_current_warning_white-drawable的引用。如果我在下一个视图中再次使用这个drawable,它不会以100%alpha显示,而是在离开前一个活动时以alpha值显示。

我目前的解决方案是简单地复制可提取的ic_classic_current_warning_white。一个将用于选择器。另一个副本将用于“静态”目的。

 类似资料:
  • 嗨,我正在尝试开发一个具有完全透明状态栏和白色导航栏的页面。我正在使用 但是它在某些设备上不起作用。它在某些设备上显示状态栏的覆盖。不过,它在某些设备上工作正常。请帮我解决这个问题。我也尝试过设置全屏标志,但它会导致状态栏字体消失。我也使用了statusBarUtil库,但它会导致导航栏变黑。

  • 我跟随一些在线示例实现了一个导航抽屉操作栏半透明状态栏。半透明的状态栏根本不会变为透明。 这是我的AndroidManifest。xml v21/风格。xml 主要活动。xml 以及主要的活动。JAVA

  • 问题内容: 我想在PDFBox中用透明线绘制线条和多边形。这是一些有关如何绘制蓝线的示例代码,但是我无法弄清楚更改颜色的Alpha值。 问题答案: 您不能使用的alpha值,因为PDFBox仅使用RGB值。根据它的javadoc 只是: 设置描边颜色,指定为RGB。 一种选择是将背景色设置为描边色,以使线条不可见。 注意- 不可见!=透明(因此您不会获得透视效果)

  • 对于需要图形分层的应用,经常需要处理透明度。本节,我们将学习如何使用全局透明度设置图形的透明度。 图2-5 绘制透明图形 绘制步骤 按照以下步骤,在一个不透明的矩形之上,绘制一个透明的圆: 1. 定义2D画布上下文: window.onload  = function(){ var canvas  = document.getElementById("myCanvas"); var co

  • 我有一个覆盖整个屏幕的片段A和另一个位于50dp屏幕底部的片段B。片段B与片段A的底部部分重叠。我想使片段B半透明,以便看到片段A的重叠部分。 我试着使用主题。半透明,使用了framelayouts,使用了setAlpha()方法,但没有得到想要的结果。就像我们在android中有一个半透明的actionbar一样,我想让我的片段B半透明。 我试着参考这些链接...链接1:使背景半透明 链接2:h

  • 问题内容: 我有以下几行: 我将其放在MouseAdapter中的mouseReleased方法中。 基本上,我想使标签在单击时以半透明的绿色突出显示。 我在面板中有几个标签,所有标签都添加了此MouseAdapter。 我的问题是这样的: -当我单击标签时,它显示半透明的绿色,但是显示的是ANOTHER JLabel的背景,而不是我单击的背景。 无论我单击哪个标签,它始终会绘制同一标签的背景。