问题描述
代码是这样:setBackgroundColor(0x33ffffff);、但是xml文件就不能写0x... xml文件是这样:<solid android:color='#33ffffff' />
我想把0x33ffffff转换成# 开头的颜色,我尝试过直接去掉0x换成#,发现颜色不一样,网上也查不到方法,最多只能查到十六进制转RGB,或者RGB转十六进制。
问题解答
回答1:颜色转换是对的,估计是控件透明度叠加问题。如果无透明度不会产生色差。
<RelativeLayout xmlns:android='http://schemas.android.com/apk/res/android' xmlns:tools='http://schemas.android.com/tools' android:layout_width='match_parent' android:layout_height='match_parent' android:background='#33FFFFFF' > <TextViewandroid: android:layout_width='wrap_content'android:layout_height='wrap_content'android:layout_centerInParent='true'android:background='#33FFFFFF'android:text='@string/hello_world'android:textColor='#33FFFFFF' /></RelativeLayout>
这段代码直接加载,你会发现textview的背景色有突出的一块
回答2:0x33ffffff也是十六进制吧,找找转换算法或者相应的软件转换
回答3:请使用Color.parseColor('#33ffffff')方法来获取转后的值, 然后设置到背景上