ste*_*wpf 4 transparency android android-widget android-layout
在Android小部件上,如何为背景添加颜色,同时使透明变为透明?请在屏幕截图中查看时钟背景.这是一个黑色但透明的背景.我怎么能在自己的小部件上做到这一点?我可以参考系统颜色,比如HTC Sense的截图吗?谢谢你的提示!

小智 11
您必须为您的资源指定alpha通道(=透明度通道).
如果您在XML res中使用标准颜色(例如,使用colors.xml)来填充背景,则可以通过更改前两个数字来指定alpha.示例格式:
<color name="transparent_red">#99FF0000</color>
Run Code Online (Sandbox Code Playgroud)
这里的99表示alpha值,将其更改为FF将产生纯红色,将其更改为00将使整个颜色不可见.只需通过更改中间值来测试它.
有关详细信息,请查看此处.
如果你想使用实际的图片/位图,就像感觉一样,你必须创建指定了alpha通道的PNG图像.这取决于您使用哪个软件来创建位图.我推荐像Illustrator或Inkscape这样的矢量图形程序,当你指定颜色时它们有一个alpha值.在那里创建后,将图像导出为PNG并将其添加到您的应用程序资源中.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@android:color/transparent">
<ImageView
android:id="@+id/widget_image"
android:layout_width="110sp"
android:layout_height="110sp"
android:layout_gravity="center"
android:src="@drawable/appicon" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
只需将布局背景设置为透明即可.添加以下代码.这适用于我和它的小部件.
android:background="@android:color/transparent"
Run Code Online (Sandbox Code Playgroud)
android:background="#TTRRGGBB - RR,GG,BB是(十六进制)红色,绿色,蓝色组件,TT是透明组件.使用TT = 80(十六进制)表示50%透明度,FF表示不透明,00表示完全透明.
或者使用带有透明度组件的png,因为您的屏幕截图似乎正在使用.
| 归档时间: |
|
| 查看次数: |
14291 次 |
| 最近记录: |