android的資源檔案可以存放在如下的兩個地方:
①可以通過r資源清單類訪問的資源,位於/res/目錄下,android sdk會處理該目錄下的資源,在r類清單檔案中,為該目錄下的資源生成乙個索引項;
在該目錄下存放著大量常用資源:
/res/animator/ :存放定義屬性動畫的xml檔案資源。
/res/anim/ :存放定義補間動畫的xml檔案資源。
/res/color/ :存放定義不同狀態下顏色列表的xml檔案資源 。
/res/drawable/ :存放定義各種位**件的xml檔案資源,也可以是編譯成的各種物件。
/res/layout/ :存放定義使用者介面布局的xml檔案資源 。
/res/menu/ :存放為應用程式定義的各種選單資源的xml檔案。
實際上可以通過呼叫resources物件的openrawresources(int id)方法來獲取該資源的二進位制輸入流。也可以將這些原生資源放在/assets/目錄下,然後通過assetmanager來訪問。
/res/values/ :存放各種簡單的xml檔案(字串值、整數值、顏色值、陣列等)。
/res/xml/ :存放任意原生的xml檔案資源,可以通過resources.getxml( )訪問。
②無法通過r資源清單類訪問的原生資源,位於/assets/目錄下,該目錄下的資源是更徹底的原始資源,android應用會使用assetmanager來管理該目錄下的原始資源。
為了通過資源清單項來獲取實際資源,可以借助於android提供的resources類。可以把resources類理解為「android資源的訪問總管家」,resources類提供了大量的方法來根據資源清單id獲取實際資源。
resources類主要提供了如下兩類方法:
(1)get***(int id):根據資源清單id來獲取實際資源;
(2)getassets:獲取訪問/assets/目錄下資源的assetsmanager資源管理器物件;
注意:resources由context呼叫getresources( )方法來獲取的。
1.獲取螢幕方向int型別:1:portrait,2:landscape
context.getresources().getconfiguration().orientation;
2、把資源檔案放到應用程式的/res/raw下,以openrawresource方法來獲取該資源的二進位制輸入流(不帶字尾的資源檔名)開啟這個檔案:
//(資源檔名為index.html, 不需要帶字尾.html)
inputstream fs =this.getresources().openrawresource(r.raw.index);
inputstreamreader read = new inputstreamreader (fs,"utf-8");
bufferedreader in = new bufferedreader(read);
3、讀取res/drawable目錄下的png或者bmp
以資料流的方式讀取資源:
//得到resources物件
resources resource = this.getcontext().getresources();
inputstream is = resource.openrawresource(r.drawable.mm_image);
bitmapdrawable bmpdraw = new bitmapdrawable(is);
bitmap bmp = bmpdraw.getbitmap();
如果需要利用解碼器,如下使用:
inputstream is = getresources().openrawresource(r.drawable.icon);
bitmap mbitmap = bitmapfactory.decodestream(is);
paint mpaint = new paint();
canvas.drawbitmap(mbitmap, 40, 40, mpaint);
//獲取螢幕密度
float density = getresources().getdisplaymetrics().density;
4、getdimension、getdimensionpixeloffset和getdimensionpixelsize區別:
getdimension和getdimensionpixeloffset的功能類似,都是獲取某個dimen的值,但是如果單位是dp或sp,則需要將其乘以density,如果是px,則不用乘density。並且getdimension返回float,getdimensionpixeloffset返回int。而getdimensionpixelsize則不管寫的是dp還是sp還是px,都會乘以denstiy。
呼叫:context.getresources().getdimensionpixelsize();
5、context.getresources().getcolor(r.color.colorid);//獲取顏色資源
6、context.getresources().getstring(r.string.stringid);//獲取字串資源
7、獲取字串陣列:string roles = context.getresources().getstringarray(r.array.array_role_values);
檔案路徑是:\values\array.xml:
3415
1125247
142289
Android studio訪問MySQL資料庫
對mysql進行遠端或本地登入授權 grant all on to root identified by password with grant option flush privileges root 代表支援使用者root進行遠端連線,而如果只是需要本地連線,將 改為 localhost pas...
Android Studio主題設定
android studio發布也好多天了。剛好本人目前的專案需要android平板和pc區域網連線操作。就開始使用android studio了。不過預設的介面實在看不過眼,下面我們來看看android studio的主題吧。我們先選擇nimbus試試,這個名字很熟悉吧!整個介面煥然一新了吧。當然...
Android Studio編碼問題
不同於eclipse,選中專案右擊即會出現 properties 選項,可以設定專案檔案的預設編碼,可以根據自己的需要設定為utf 8 gb2312等編碼。但android studio的專案設定邏輯與eclipse有很大的區別,執行的操作為file setting file encodings然後...