1.尺寸压缩
sd卡
网络
网络的
模拟装桶模式
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds=true;
int len=0;
byte arr[]=new byte[1024];
while ((len=inputStream.read(arr))!=-1){
byteArrayOutputStream.write(arr,0,len);
}
byte[] bytes = byteArrayOutputStream.toByteArray();
BitmapFactory.decodeByteArray(bytes,0,bytes.length,options);
int size=1;
int outHeight = options.outHeight;
int outWidth = options.outWidth;
while (outHeight/size>200||outWidth/size>200){
size*=2;
}
options.inJustDecodeBounds=false;
options.inSampleSize=size;
Bitmap bitmap1 = BitmapFactory.decodeByteArray(bytes, 0, bytes.length, options);
sd卡的
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds=true;
BitmapFactory.decodeFile("/sdcard/Pictures/"+map.get("title").toString()+".jpg",options);
int outWidth = options.outWidth;
int outHeight = options.outHeight;
int size=1;
while (outWidth/size>200||outHeight/size>200){
size*=2;
}
options.inJustDecodeBounds=false;
options.inSampleSize=size;
Bitmap title = BitmapFactory.decodeFile("/sdcard/Pictures/" + map.get("title").toString() + ".jpg", options);
压缩质量
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
try {
bitmap.compress(Bitmap.CompressFormat.JPEG,50,new FileOutputStream(file));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
内容提供者
1.获取音频: (1)uri:MediaStore.Audio.Media.EXTERNAL_CONTENT_URI (2)字段:TITLE:歌名 ARTIST 歌手 DURATION 总时长 DATA 地址
String[] strs= new String[]{MediaStore.Audio.Media.TITLE,MediaStore.Audio.Media.ARTIST,MediaStore.Audio.Media.DURATION,MediaStore.Audio.Media.DATA};
2.获取视频: (1)uri:MediaStore.Video.Media.EXTERNAL_CONTENT_URI (2)字段:TITLE:歌名 ARTIST 歌手 DURATION 总时长 DATA 地址
String[] strs= new String[]{MediaStore.Video.Media.TITLE,MediaStore.Video.Media.ARTIST,MediaStore.Video.Media.DURATION,MediaStore.Video.Media.DATA};
3.获取图库: (1)uri:MediaStore.Images.Media.EXTERNAL_CONTENT_URI (2)字段:
MediaStore.Images.Media.TITLE;图片名称
MediaStore.Images.Media.SIZE;大小
MediaStore.Images.Media.DATA;地址
4.获取联系人: (1)uri:ContactsContract.CommonDataKinds.Phone.CONTENT_URI (2)字段:Phone.DISPLAY_NAME:姓名 NUMBER:电话 String[] strs= new
String[]{ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,ContactsContract.CommonDataKinds.Phone.NUMBER};
5.获取短信: (1)uriTelephony.Sms.CONTENT_URI (2)字段:ADDRESS 地址 BODY 内容 String[] strs= new
String[]{Telephony.Sms.ADDRESS,Telephony.Sms.BODY};
备注:1 2 3 读sd卡的权限 4 读联系人的权限 5 读短信的权限