Android Canvas 改变背景颜色

我有一个有两个 View 的应用

XML 复制代码
<com.myexample.ui.view.BackgroundView 
        android:id="@+id/id_draw_canvas_classroom" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:layout_marginBottom="3dp" 
        android:layout_marginLeft="5dp" 
        android:layout_marginRight="5dp" 
        android:layout_marginTop="3dp" 
        android:layout_weight="1" 
        android:background="#FFFFFFFF" /> 
 
    <com.myexample.ui.view.FrontView 
        android:id="@+id/id_draw_canvas_user" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:layout_marginBottom="3dp" 
        android:layout_marginLeft="5dp" 
        android:layout_marginRight="5dp" 
        android:layout_marginTop="3dp" 
        android:layout_weight="1" 
        android:background="#00000000" /> 

这个view是重叠的,我在后台的view中加载了一段时间的信息。在那段时间里,我想将 FrontView 设置为白色,然后(当背景完成加载时)变为透明。

在 FrontView 中,我有一个带有位图的 Canvas 。正在工作,如果我想将背景设置为透明,我可以这样做

java 复制代码
canvas.drawColor(0); 

设置背景为白色

java 复制代码
canvas.drawColor(-1); 

如果无法将白色更改为透明,试试这个:

java 复制代码
/* 
* A = Alpha a.k.a. transparency 
* R = Red color 
* G = Green color 
* B = Blue color 
* 
* All of them have a range from 0 to 255 
*/ 
canvas.drawARGB(0, 225, 225, 255); 

或者

java 复制代码
canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR); 

第一个选项更好,因为它更精确,例如,如果您想将其设置得不那么透明。

相关推荐
Chrome深度玩家1 小时前
谷歌翻译安卓版拍照翻译精准度与语音识别评测【轻松交流】
android·人工智能·语音识别
长点点1 小时前
从架构角度了解安卓APP(1):安卓核心组件的设计逻辑与演进
android·架构·app
用户71887350336801 小时前
Android适配最新SplashScreen方案
android·android jetpack
EQ-雪梨蛋花汤2 小时前
【Part 2安卓原生360°VR播放器开发实战】第二节|基于等距圆柱投影方式实现全景视频渲染
android·音视频·vr
Railshiqian2 小时前
Framework.jar里的类无法通过Class.forName反射某个类的问题排查
android·反射·framework.jar
鸿蒙布道师3 小时前
鸿蒙NEXT开发正则工具类RegexUtil(ArkTs)
android·ios·华为·harmonyos·arkts·鸿蒙系统·huawei
Anger重名了3 小时前
🌟 一篇文章搞懂Kotlin协程:比线程更轻量的并发神器
android
缘来的精彩3 小时前
adb常用的20个命令
android·adb·kotlin
tangweiguo030519874 小时前
Android kotlin通知功能完整实现指南:从基础到高级功能
android·kotlin