首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

更新图片到ContentProvider以及从索引中选择一个图片

2012-08-21 
更新图片到ContentProvider以及从目录中选择一个图片private void downloadImage(String imageUrl) throws

更新图片到ContentProvider以及从目录中选择一个图片

private void downloadImage(String imageUrl) throws InterruptedException {
InputStream inputStream = null;
OutputStream outStream = null;
try {
? URL url = new URL(imageUrl);
? inputStream = url.openStream();
? String filepath = getFilePath(imageUrl);
? String filename = getFileName(imageUrl);
? File imageDirectory = new File(filepath);
? File file = new File(filepath + filename);
? if (file.exists() == false) {
?? String path = imageDirectory.toString().toLowerCase();
?? String name = imageDirectory.getName().toLowerCase();
?? ContentValues values = new ContentValues(7);
?? values.put(Images.Media.TITLE, filename);
?? values.put(Images.Media.DISPLAY_NAME, filename);
?? values.put(Images.Media.DATE_TAKEN, new Date().getTime());
?? values.put(Images.Media.MIME_TYPE, "image/jpeg");
?? values.put(Images.ImageColumns.BUCKET_ID, path.hashCode());
?? values.put(Images.ImageColumns.BUCKET_DISPLAY_NAME, name);
?? values.put("_data", filepath + filename);
?? ContentResolver contentResolver = getApplicationContext().getContentResolver();
?? Uri uri = contentResolver.insert(Images.Media.EXTERNAL_CONTENT_URI, values);
?? outStream = contentResolver.openOutputStream(uri);
?? byte[] buffer = new byte[1024];
?? int count;
?? while ((count = inputStream.read(buffer)) != -1) {
??? if (Thread.interrupted() == true) {
???? String functionName = Thread.currentThread().getStackTrace()[2].getMethodName() + "()";
???? throw new InterruptedException("The function " + functionName + " was interrupted.");
??? }
??? outStream.write(buffer, 0, count);
?? }
? }
}
catch (IOException e) {
}
finally {
? if (inputStream != null) {
?? try {
??? inputStream.close();
?? }
?? catch (IOException e) {
?? }
? }
? if (outStream != null) {
?? try {
??? outStream.close();
?? }
?? catch (IOException e) {
?? }
? }
}
}
2.

?

final int CHOOSE_AN_IMAGE_REQUEST = 2910;
String directory = "/sdcard/someDirectory/";
Uri uri = Images.Media.INTERNAL_CONTENT_URI.buildUpon().appendQueryParameter("bucketId", getBucketId(directory)).build();
Intent intent = getIntent();
intent.setData(uri);
intent.setAction(Intent.ACTION_PICK);
startActivityForResult(Intent.createChooser(intent, "Choose a Viewer"), CHOOSE_AN_IMAGE_REQUEST);

public static String getBucketId(String bucketName) {
bucketName = bucketName.toLowerCase();
if (bucketName.charAt(bucketName.length() - 1) == '/') {
? bucketName = bucketName.substring(0, bucketName.length() - 1);
}
return Integer.toString(bucketName.hashCode());
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
? if (requestCode == CHOOSE_AN_IMAGE_REQUEST) {
?? Uri chosenImageUri = data.getData();
?? ...
? }
}
}

热点排行