在XML佈局的如下:
<pre name="code" class="html"><LinearLayout
android:id="@+id/outstock_lists"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00000000"
android:gravity="center"
android:orientation="vertical" >
</LinearLayout>
給Linearlayout設置的背景色,即透明色
但是在deug模式中,在Linearlayout對象的mbackground屬性值爲ColorDrawable,那麼如何在ColorDrawable中查看顏色值呢,通過分析源代碼
public ColorDrawable(int color) {
this(null);
setColor(color);
}
public void setColor(int color) {
if (mState.mBaseColor != color || mState.mUseColor != color) {
invalidateSelf();
mState.mBaseColor = mState.mUseColor = color;
}
}
最終的顏色值被賦值到mState.mBaseColor屬性上,在這個對象上面,看到的值是一個int類型(-8947849),自己還是不知道這個值代表的是什麼顏色,最後查遍網絡,發現了一個方法,可以把android 的顏色從int值轉換成String類型,方式如下:
int intColor=-8947849;
String strColor = String.format("#%06X", 0xFFFFFF & intColor);
最終得到的顏色值是#777777
不是自己在Xml佈局中設置的透明色
不知道是什麼操作導致android沒有加載在XML中定義的顏色,導致最後在加載時顏色值不是我想要的,不得已只能在加載佈局之後,給Linearlayout的background再次賦值。