androidcolor
⑴ android怎樣自定義color文件
Android開發中顏色的自定義方法
1、使用Color類的常量,如:
int color = Color.BLUE; // 創建一個藍色 是使用Android提供的顏色 int color = Color.RED; int color = Color.WHITE; 2、通過ARGB構建,如:
int color = Color.argb ( 127, 255, 0, 255 ); // 半透明的紫色
其中第一個參數表示透明,0表示完全透明,255(ff)表示完全不透明;後三位分別代表RGB的值了。 3、使用XML資源文件來定義顏色
該方法擴展性好,便於修改和共享,如在values目錄下創建一個color.xml: <?xml version=」 1.0」 encoding=」utf -8」> <resources>
<color name=」mycolor」> #7fff00ff</color> </resources>
定義了一個名為mycolor的顏色,在別的地方就可以通過引用mycolor來獲取該顏色值,如textView定義中:
android:textColor= "@drawable/mycolor"
java代碼中可以使用ResourceManager類中的getColor來獲取該顏色: int color = getResources().getColor(R.color.mycolor);
這與第二種方法得到的值是一樣的,getResources()方法返回當前活動Activity的ResourceManager類實例。
說明:XML定義方法接受6位和8位兩種表示法,而且開頭必須是#,8位定義時前兩位表示透明。 4、直接定義色值,如: int color = 0xff00ff00;
這種方法必須使用0x開頭,而不是用我們常用的#。與方法3不一樣,值也必須用8位表示 ,不接受6位的顏色表示。分組一下0x|ff|ff00ff,0x是代表顏色整數的標記,ff是表示透明度,ff00ff表示RGB顏色值。
=======================
補充一點Android布局中背景圖片的設置(編輯LinearLayout):
* 可以使用純色:android:background="@drawable/mycolor" (XML資源文件中定義的顏色)
* 也可使用圖片:android:background="@drawable/bg" (需要將一個名為bg.jpg或png的圖片拷貝到res/drawable-hdpi目錄下)
⑵ android中怎麼設置color為透明顏色或者半透明顏色
正常設置顏色是「#」後面加6位16進制數字,在這6位前面再加兩位就是用來設置透明度的。
⑶ android瘋狂講義 color怎麼定義
工程res目錄下的values目錄,新建color.xml,
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="trans">#00000000</color>
<color name="blue">#0000ff</color>
<color name="trans_blue">#7f4A708B</color>
<color name="tras_black">#7f000000</color>
<!-- 透明 -->
<color name="transparent">#00000000</color>
<!-- 黑色 -->
<color name="black">#000000</color>
<!-- 白色 -->
<color name="white">#FFFFFF</color>
<!-- 淺灰色 -->
<color name="lightgrey">#C4C4C4</color>
<!-- 灰色 -->
<color name="grey">#999999</color>
<!-- 深灰色 -->
<color name="darkgrey">#D1D1D1</color>
<!-- 綠色 -->
<color name="green">#218868</color>
<!-- 海綠色 -->
<color name="lightgreen">#6db237</color>
<!-- 暗灰色 -->
<color name="dimgrey">#696969</color>
<!-- 天藍色 -->
<color name="gray">#808080</color>
<!-- 雪白色 -->
<color name="floralwhite">#FFFAF0</color>
<!-- 紅色 -->
<color name="red">#de1818</color>
<!-- 70%透明度 -->
<color name="sevenalpha">#AF000000</color>
</resources>
⑷ Android R.color報錯
Clear一下Project
然後重新build一下試一試
⑸ 如何通過代碼動態改變android的窗口背景顏色
Android修改背景,邊框等代碼如下:
<?xmlversion="1.0"encoding="utf-8"?>
<shapexmlns:android="http://schemas.android.com/apk/res/android">
<!--圓角-->
<corners
android:radius="9dp"
android:topLeftRadius="2dp"
android:topRightRadius="2dp"
android:bottomLeftRadius="2dp"
android:bottomRightRadius="2dp"/><!--設置圓角半徑御答-->
<!--漸變-->
<gradient
野拆襪android:startColor="@android:color/white"
android:centerColor="@android:color/black"
頌激android:endColor="@android:color/black"
android:useLevel="true"
android:angle="45"
android:type="radial"
android:centerX="0"
android:centerY="0"
android:gradientRadius="90"/>
<!--間隔-->
<padding
android:left="2dp"
android:top="2dp"
android:right="2dp"
android:bottom="2dp"/><!--各方向的間隔-->
<!--大小-->
<size
android:width="50dp"
android:height="50dp"/><!--寬度和高度-->
<!--填充-->
<solid
android:color="@android:color/white"/><!--填充的顏色-->
<!--描邊-->
<stroke
android:width="2dp"
android:color="@android:color/black"
android:dashWidth="1dp"
android:dashGap="2dp"/>
</shape>
⑹ android中自定義屬性是color怎麼定義
<item name="android:textAppearance">?android:attr/textAppearance</item> <item name="android:textStyle">normal</item> <item name="android:textColor">#FFFFFFFF</item> <item name="android:textSize">16dp</item> <item name="android:windowEnterAnimation">@*android:anim/grow_fade_in_from_bottom</item> <item name="android:windowExitAnimation">@*android:anim/shrink_fade_out_from_bottom</item> <item name="android:fontFamily">sans-serif-light</item> <item name="android:textAllCaps">true</item> 這些是在4.1系統源碼下的UI裡面的Style.xml中的一些,支持 普通的屬性,信息不全,要全部的那些我估摸著這里容不下。 可以自定義屬性。
⑺ android Color.parseColor("顏色字元串")轉換要點
錯誤信息:
Android的 Color.parseColor("顏色字元串") 這個方法以下是錯誤的案例
當時線上砸了,ios沒問題,android一打開就閃退,指沒嚇得我一身的冷蠢逗禪汗,最後確定帶塵是運營哪裡配置色值有問題,Color.parseColor("#AARRGGBB")一轉化就崩潰
最後做了一下優化:
⑻ 怎麼在Android中設置一個color.xml快速獲取顏色
可在string.xml中修改值,這個簡單;在代碼中修改也可以,不過之前string.xml要為某id事先預留變數,代碼能夠修改它~例如說, <string name="a">今年是%1$d年</掘圓則string> JAVA代碼中可用 String a = getResources().getString(R.string.a); String b = String.format(a, 2011); 將%1$d替換為2011 簡單解釋%1$d,1表示a中有一個值判棚需要修改;d表示是整型。 若是要有兩個就要再寫多個%2$d 若是字元串,就寫成%1$s 我想你腔盯是想知道第二種方法吧?!呵呵~
⑼ android 判斷資源id是color還是drawable
findViewById是我們獲取layout中各種View 對象比如按鈕、標簽、ListView和ImageView的便利方法。顧名思義,它需要一個int參數:資源id。
資源id非常有用。Android回自動為每個位於res目錄下的資源分配id,包括各種圖片文件、xml文中的」@+id」對象。res的子目錄幾乎總是固定的,比如每次都能見到的:drawable-xxxx、layout、values,以及不常見的:anim、xml、row、color。
Android教科書上告訴你:
res/drawable/用來存放圖片文件;
res/layout/用來存放布局定義文件;
res/values/用來存放一些變數、參數等文件。
這都是我們已經知道的。此外,Android會為res目錄下的所有資源分配id,其主要的分配原則是:
drawable中的圖片文件總是每個文件一個資源id。
Xml文件中每個使用android:id=」@+id/xxx」的view都會被分配一個未用的資源id。
其他更復雜的規則也許每個人都會補充一些。
在 ADK 的API 中,有許多方法其實都會使用資源id作為參數,比如 getDrawable 方法 :
getResources().getDrawable(R.drawable.sendsms_bk));
從字面上看,getResouces方法返回一個android.content.res.Resources對象。
getDrawalbe方法返回一個Drawable對象,我們知道這就是一張圖片。
getDrawable方法使用的參數就是資源id。
但是,這些int型的資源id到底是些什麼數字?或者它們都放在哪裡。如果你夠細心,你可以在gen目錄的R.java文件中找到它們。每個16進制整型id都有一個很O-O 的屬性名字,它們都是public static final的,建議你不要手動去修改它們。這些資源id位於不同類層次結構中,你仔細看一看,會發現其中的一飢首緩些規律,比如,drawable類中包含資源id其實代表了res/drawable目錄中的圖片文件;layout類中包含的資源id其實是代表了在res/爛模layout目錄中的xml文件 ;id類中包含的資源id其實是代表了布局xml文件中使用了 android:id=」@+id/xxx」的widget對象——當然如果你使用的是」@+Tyre/xxx」,則Android編譯時會在R.java 中創建一個叫做 Tyre 的類。
通過上面的了解,我們發現資源id就是以「R.」開頭的變數或屬性——因為它都定義在R類中——這個類跟android.R不是同一個R,它們不在同一個包層次中。前者是定義了android框架自己的資源,比如:android.R.layout.simple_expandable_list_item_1、android.R.layout.simple_expandable_list_item_2。這些資源你使用過嗎?有時間不妨試試。而另一個R就是我們自己的R了,定義了我們自己的資源id。我們可以用面向對象的R.xxx.yyy的方式使用資源id,當然也可以直接用16進制數來使用它們。
資源id在Android中是如此重要,因此我們只要獲得了資源id,即可獲得資源。因為某些情況下,我們不能使用某個常量作為資芹消源id(因為我們想用一個變數代替它),所以只能採用兩種方式動態獲取資源id:
1、反射
java的反射是如此強大,以至於我們在走投無路時總是想起它。我們來看一段代碼:
try{
Field field=R.drawable.class.getField(type);
int i= field.getInt(new R.drawable());
Log.d(tag,i+"");
return i;
}catch(Exception e){
Log.e(tag,e.toString());
return R.drawable.unknow;
}
type是一個變數,他的可能值會是「close」、「edit」、「icon」等。我們通過java的反射類Field 去訪問 R.drawable 類下面的某個欄位。實際上,我們知道在R.drawable 下的欄位就是 res.drawable-xxxx 目錄下的圖片文件的資源id。因此運行上面的這段代碼,其實就是通過一個字元串去獲取對應圖片文件的資源id。比如,當 type 的值為「icon」時,上面的代碼會獲得res.drawable-xxxx目錄下的 icon.png 圖片文件的資源id並返回給我們。我們通過資源 id 來把圖片顯示在ImageView中就是順理成章的事了。
2、使用Resources 類的 getIdentifier方法
使用反射畢竟還是麻煩。如果同樣的事情用 android.content.res.Resources 類來干,就是兩句話而已:
Resources res=getResources();
return res.getIdentifier(type,"drawable",getPackageName());
getResources方法是來自於contenxt(也就是Activity類),它直接可以返回一個Resouces對象。而Resouces的getIdentifier方法可以返回R.java中的任何資源id,當然,你必須指定3個參數:欄位名,類名,包名。包名指定了的 全限定名的包名部分,如果R 的全限定名為 android.R 或者 com.company.R,則包名在這里就是「android」或「com.company」。getPackageName其實是this.getPackageName(),它直接返回本類的包名。
類名則是資源所屬的類。比如我們知道的,在R.java 類中的幾個固定的類:drawable、id、string、layout等,在它們下邊又定義了許多資源id。
欄位名則是資源id的名字。比如這個資源id定義: public static final int del=0x7f020002;
del就是一個資源id的名字,0x7f020002則是它的16進制值。
通過3個參數,getIdentifier 方法就可以通過比較動態的方式獲得資源id。
⑽ android studio,selector沒有android:color這個屬性
1、你如果希望把某種顏色設為背景色,可以仿喊先創建一個shape文件:
<shape xmlns:android="http://schemas.android.com/apk/res/android" >啟蔽
<solid
android:color="#00000000"
/>悄大州
</shape>
2、然後在selector里指定該shape文件為drawble:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/app_icon_shadow" android:state_pressed="true"/>
<item android:drawable="@drawable/shape_transparent"/>
</selector>