2011-04-15 61 views
1

我遇到問題。 我從android中的圖庫中選擇圖像並在imageview中顯示它。 我想要做的是用另一個名稱創建另一個文件,並將此映像複製到我的應用程序資源中的目錄中的此文件。 任何人都可以幫助我。從可繪製的圖形創建新的圖像文件

回答

2

您可以用下面的啓動畫廊選擇器意圖:

public void imageFromGallery() { 
Intent getImageFromGalleryIntent = 
    new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI); 
startActivityForResult(getImageFromGalleryIntent, SELECT_IMAGE); 
} 

然後當它返回時,獲得所選擇的圖像與下面的代碼部分的路徑:

public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (resultCode == RESULT_OK) { 
    switch(requestCode) { 
    case SELECT_IMAGE: 
     mSelectedImagePath = getPath(data.getData()); 
     break; 
    } 
} 

public String getPath(Uri uri) { 
String[] projection = { MediaStore.Images.Media.DATA }; 
Cursor cursor = managedQuery(uri, projection, null, null, null); 
startManagingCursor(cursor); 
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
cursor.moveToFirst(); 
return cursor.getString(column_index); 
} 

現在,您可以將字符串中的路徑名複製到其他位置。

try { 
File sd = Environment.getExternalStorageDirectory(); 
File data = Environment.getDataDirectory(); 
if (sd.canWrite()) { 
    String sourceImagePath= "/path/to/source/file.jpg"; 
    String destinationImagePath= "/path/to/destination/file.jpg"; 
    File source= new File(data, souceImagePath); 
    File destination= new File(sd, destinationImagePath); 
    if (source.exists()) { 
     FileChannel src = new FileInputStream(source).getChannel(); 
     FileChannel dst = new FileOutputStream(destination).getChannel(); 
     dst.transferFrom(src, 0, src.size()); 
     src.close(); 
     dst.close(); 
    } 
} catch (Exception e) {} 

這將做你的工作,我認爲..

而且通過這個link