Android setAlpha无效或colors设置透明度

Android在xml文件中设置颜色透明度

TextView或者ImageView平时会遇到设置alpha透明度属性无效的情况,一般是colors或者drawable中设置的属性把alpha这个设置给覆盖了,所以才会出现无效的情况下,遇到这种现象可以通过如下方式处理。

例如我们现在要设置一个字体的颜色,UX图上展示的HEX色号为#020914,不透明度为60%,显示出来应该是灰色的。

    <color name="test__textcolor">#020914</color>    //这样设置出来的是不透明度为0的情况,也就是不做任何透明化处理

	<color name="test__textcolor">#99020914</color>     //这个才是正确的写法,通过下表查出不透明度对应的数字,加在#号后面

透明度 相关设置表如下:
从FF开始表示完全不透明,到00表示完全透明

100% — FF
99% — FC
98% — FA
97% — F7
96% — F5
95% — F2
94% — F0
93% — ED
92% — EB
91% — E8
90% — E6
89% — E3
88% — E0
87% — DE
86% — DB
85% — D9
84% — D6
83% — D4
82% — D1
81% — CF
80% — CC
79% — C9
78% — C7
77% — C4
76% — C2
75% — BF
74% — BD
73% — BA
72% — B8
71% — B5
70% — B3
69% — B0
68% — AD
67% — AB
66% — A8
65% — A6
64% — A3
63% — A1
62% — 9E
61% — 9C
60% — 99
59% — 96
58% — 94
57% — 91
56% — 8F
55% — 8C
54% — 8A
53% — 87
52% — 85
51% — 82
50% — 80
49% — 7D
48% — 7A
47% — 78
46% — 75
45% — 73
44% — 70
43% — 6E
42% — 6B
41% — 69
40% — 66
39% — 63
38% — 61
37% — 5E
36% — 5C
35% — 59
34% — 57
33% — 54
32% — 52
31% — 4F
30% — 4D
29% — 4A
28% — 47
27% — 45
26% — 42
25% — 40
24% — 3D
23% — 3B
22% — 38
21% — 36
20% — 33
19% — 30
18% — 2E
17% — 2B
16% — 29
15% — 26
14% — 24
13% — 21
12% — 1F
11% — 1C
10% — 1A
9% — 17
8% — 14
7% — 12
6% — 0F
5% — 0D
4% — 0A
3% — 08
2% — 05
1% — 03
0% — 00

### Android设置视图透明度的实现方法 在 Android 开发中,可以通过多种方式设置视图的透明度。以下是几种常见的实现方法: #### 方法一:通过 XML 属性设置静态透明度 可以在布局文件中直接为视图组件设置 `android:alpha` 属性来指定其初始透明度透明度值范围是从 0.0(完全透明)到 1.0(完全不透明)。例如: ```xml <Button android:id="@+id/myButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="点击我" android:alpha="0.5" /> <!-- 设置透明度为半透明 --> ``` 此方法适用于需要固定透明度的情况[^1]。 #### 方法二:通过 Java/Kotlin 动态调整透明度 如果需要在运行时动态改变视图的透明度,可以使用 `setAlpha(float alpha)` 方法。以下是一个简单的例子: ```java import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { private Button myButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myButton = findViewById(R.id.myButton); myButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { float currentAlpha = myButton.getAlpha(); if (currentAlpha == 1.0f) { myButton.setAlpha(0.5f); // 将透明度改为半透明 } else { myButton.setAlpha(1.0f); // 恢复为完全不透明 } } }); } } ``` 这段代码展示了如何根据当前状态切换按钮的透明度[^1]。 #### 方法三:创建透明度动画 为了实现更平滑的效果,可以利用 `ObjectAnimator` 类制作透明度变化动画。下面是一段完整的示例代码: ```java import android.animation.ObjectAnimator; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { private Button myButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myButton = findViewById(R.id.myButton); myButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ObjectAnimator animator = ObjectAnimator.ofFloat(myButton, "alpha", 1.0f, 0.0f); animator.setDuration(1000); // 设置动画持续时间 animator.start(); // 启动动画 } }); } } ``` 这里演示了从完全不透明逐渐变为完全透明的过程[^1]。 #### 方法四:结合 RecyclerView 实现滚动渐变透明效果 对于复杂的场景,比如 Toolbar 和 RecyclerView 的组合,可能希望随着用户的滚动操作而自动调节某些 UI 元素的透明度。这种情况下通常会监听 ScrollView NestedScrollView 的滚动事件,并基于滚动距离计算新的 Alpha 值。具体逻辑可以根据实际需求定制[^2]。 --- ### 总结 以上介绍了四种不同的技术手段用于控制 Android 应用中的视图透明属性。开发者应依据项目的具体情况选择最合适的方案实施开发工作。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

养乐多好喝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值