2013-08-02 37 views
-2

我在網上發現了這個程序,並且想要將創建新文件的部分替換爲外部存儲器,同時創建一個新文件到內部存儲器。請,如果你知道答案,你能告訴我要寫的確切代碼。我已經閱讀了這個網站上的其他問題,並最終搞亂了這個程序。謝謝。如何設置此程序使用內部存儲而不是外部(android)

佈局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" > 


<ImageView 
android:id="@+id/imageView1" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:contentDescription="@string/desc" /> 

</LinearLayout> 

和Java文件

public class Main extends Activity implements OnClickListener { 

private static final int TAKE_PICTURE = 0; 
private Uri mUri; 
private Bitmap mPhoto; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    ((Button) findViewById(R.id.snap)).setOnClickListener(this); 
    ((Button) findViewById(R.id.rotate)).setOnClickListener(this); 
} 

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    switch (requestCode) { 
    case TAKE_PICTURE: 
     if (resultCode == Activity.RESULT_OK) { 
      getContentResolver().notifyChange(mUri, null); 
      ContentResolver cr = getContentResolver(); 
      try { 
       mPhoto = android.provider.MediaStore.Images.Media.getBitmap(cr, mUri); 
       ((ImageView)findViewById(R.id.photo_holder)).setImageBitmap(mPhoto); 
      } catch (Exception e) { 
       Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show(); 
      } 
     } 
    } 
} 

    @Override 
    public void onClick(View v) { 
    if (v.getId()== R.id.snap) { 
     Intent i = new Intent("android.media.action.IMAGE_CAPTURE"); 
     File f = new File(Environment.getExternalStorageDirectory(), "photo.jpg"); 
     i.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f)); 
     mUri = Uri.fromFile(f); 
     startActivityForResult(i, TAKE_PICTURE); 
    } else { 
     if (mPhoto!=null) { 
      Matrix matrix = new Matrix(); 
      matrix.postRotate(90); 
      mPhoto = Bitmap.createBitmap(mPhoto , 0, 0, mPhoto.getWidth(), mPhoto.getHeight(), matrix, true); 
      ((ImageView)findViewById(R.id.photo_holder)).setImageBitmap(mPhoto); 
     } 
    } 
} 

}

回答

1

你不能,不採取這樣的圖片。您正在使用意圖並從另一個應用拍攝照片。該應用程序無法訪問您的內部存儲器(內部存儲器是每個應用程序)。您需要保存到外部存儲器上的公共目錄,或者您需要自己拍照。

+0

如何從存儲文件的Android相機應用程序訪問內部存儲器? – AbhishekSaha

相關問題