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); 

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

相关推荐
逐光老顽童2 天前
Java 与 Kotlin 混合开发避坑指南:30 个真实案例实录
android·kotlin
爱勇宝2 天前
鸿蒙生态的下半场:开发者不只要能开发,还要能赚钱
android·前端·程序员
Yeyu2 天前
刷新一帧的艺术:invalidate / postInvalidate / postInvalidateOnAnimation全解析
android
潘潘潘2 天前
Android OTA 升级原理和流程介绍
android
plainGeekDev3 天前
null 判断 → Kotlin 可空类型
android·java·kotlin
plainGeekDev3 天前
getter/setter → Kotlin 属性
android·java·kotlin
YXL1111YXL3 天前
Handler 消息回收与协程异步执行的时序陷阱
android
恋猫de小郭3 天前
KMP / CMP 鸿蒙版本 Beta 发布,他有什么特别之处?
android·前端·flutter
三少爷的鞋3 天前
Android 协程并发控制:别动线程池,控制好并发语义就够了
android
weiggle3 天前
第七篇:状态提升与单向数据流——架构设计的核心
android