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项目地址
网友评论