程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ImageView 中的透明 PNG 在清单中使用 hardwareAccelerated true大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决ImageView 中的透明 PNG 在清单中使用 hardwareAccelerated true?

开发过程中遇到ImageView 中的透明 PNG 在清单中使用 hardwareAccelerated true的问题如何解决?下面主要结合日常开发的经验,给出你关于ImageView 中的透明 PNG 在清单中使用 hardwareAccelerated true的解决方法建议,希望对你解决ImageView 中的透明 PNG 在清单中使用 hardwareAccelerated true有所启发或帮助;

我正在尝试在自定义 jpg 背景上制作 ImageVIEw。

我的 ImageVIEw 来源是一个透明的 PNG

我是这样做的:

<linearLayout
    xmlns:androID="http://scheR_860_11845@as.androID.com/apk/res/androID"
    xmlns:tools="http://scheR_860_11845@as.androID.com/tools"
    androID:ID="@+ID/linearLayout"
    androID:layout_wIDth="match_parent"
    androID:layout_height="match_parent"
    androID:orIEntation="vertical"
    tools:context=".MainActivity"
    androID:gravity="center"
    androID:BACkground="@drawable/bg">

    <ImageVIEw
        androID:ID="@+ID/btnFlash"
        androID:layout_wIDth="wrap_content"
        androID:layout_height="wrap_content"
        androID:layout_margin="20dp"
        androID:src="@drawable/off"/>
</linearLayout>

它奏效了。

但我需要在我的清单中开启这个功能:

androID:harDWareAccelerated="true"

当我将其设为 true 时,我的 ImageVIEw 失去了透明度。

如何使用 androID:harDWareAccelerated="true" 来实现?

解决方法

当您在清单文件中全局指定启用硬件加速时,您仍然可以在活动/窗口/视图级别本地启用或禁用硬件加速以进行细粒度控制。 (见official guide。)

因此,通过禁用指定 View.setLayerType(View.LAYER_TYPE_SOFTWARE,null); 的 ImageView 和/或 LinearLayout 的硬件加速,您的问题可能会得到解决。

View imageView = findViewById(R.id.btnFlash);
imageView.setLayerType(View.LAYER_TYPE_SOFTWARE,null);

View linearLayout = findViewById(R.id.linearLayout);
linearLayout.setLayerType(View.LAYER_TYPE_SOFTWARE,null);

大佬总结

以上是大佬教程为你收集整理的ImageView 中的透明 PNG 在清单中使用 hardwareAccelerated true全部内容,希望文章能够帮你解决ImageView 中的透明 PNG 在清单中使用 hardwareAccelerated true所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:true