android 從Resources和Assets中讀取檔案
在res/raw 和 assets 目錄下新建兩個文字檔案 "test1.txt" 和 "test2.txt" 用以讀取,結構如下圖。
//從resources中的raw 資料夾中獲取檔案並讀取資料
**public** String getFromRaw(){
String result = "";
**try** {
InputStream in = getResources().openRawResource(R.raw.test1);
//獲取檔案的位元組數
**int** lenght = in.available();
//建立byte陣列
**byte**[] buffer = **new** **byte**[lenght];
//將檔案中的資料讀到byte陣列中
in.read(buffer);
result = EncodingUtils.getString(buffer, ENCODING);
} **catch** (Exception e) {
e.printStackTrace();
}
**return** result;
}
//從assets 資料夾中獲取檔案並讀取資料
**public** String getFromAssets(String fileName){
String result = "";
**try** {
InputStream in = getResources().getAssets().open(fileName);
//獲取檔案的位元組數
**int** lenght = in.available();
//建立byte陣列
**byte**[] buffer = **new** **byte**[lenght];
//將檔案中的資料讀到byte陣列中
in.read(buffer);
result = EncodingUtils.getString(buffer, ENCODING);
} **catch** (Exception e) {
e.printStackTrace();
}
**return** result;
}
BitmapFactory.Options
BitmapFactory.Options這個類,有一個欄位叫做 inJustDecodeBounds 。
SDK中對這個成員的說明是這樣的: If set to true, the decoder will return null (no bitmap), but the out…
也就是說,如果我們把它設為true,那麼BitmapFactory.decodeFile(String path, Options opt)並不會真的返回一個Bitmap給你,它僅僅會把它的寬,高取回來給你,這樣就不會佔用太多的記憶體,也就不會那麼頻繁的發生OOM了。 示例程式碼如下:
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
Bitmap bmp = BitmapFactory.decodeFile(path, options);/* 這裡返回的bmp是null */
android圖片壓縮質量引數Bitmap.Config RGB_565 ARGB_8888
相關連結
在壓縮之前將option的值設定一下:
options.inPreferredConfig = Bitmap.Config.RGB_565;
Rect類
Rect類:Rect類主要用於表示座標系中的一塊矩形區域
參考連結1
參考連結2
new Rect(150, 75, 260, 120)
這四個 引數 分別代表的意思是:left top right bottom 上下左右唄。啊,不是 是 左 上 右 下。 下面給大家解釋
left : 矩形左邊的X座標 150 ---->圖片中的A點
top: 矩形頂部的Y座標 75 ---->圖片中的B點
right : 矩形右邊的X座標 260 ----->圖片中的C點
bottom: 矩形底部的Y座標 120 ------->圖片中的D點
參考文件
github專案地址