我正在實施相機應用程序。我從相機中捕獲圖像並將其保存到DCIM文件夾中,並將該圖像顯示在ImageView中。圖像成功存儲到DCIM文件夾中,但未在ImageView中以全屏尺寸顯示。並且我的應用程序崩潰並且出現錯誤Android:圖像不顯示在圖像視圖從相機
Uri selectedImageUri = data.getData();是空對象引用。
這裏是我的代碼
public class MainActivity extends ActionBarActivity {
Button b1,b2;
ImageView iv;private File output=null;int CONTENT_REQUEST =9999;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b1=(Button)findViewById(R.id.button);
iv=(ImageView)findViewById(R.id.imageView);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
File dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
output = new File(dir, "CameraContentDemo.jpeg");
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(output));
startActivityForResult(intent, CONTENT_REQUEST);
}
});
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
// Bitmap bmp = BitmapFactory.decodeFile(urImageFilePath);
if (requestCode == CONTENT_REQUEST)
{
if (resultCode == RESULT_OK)
{
try{
Uri selectedImageUri = data.getData();
Log.e("selectedImageUri "," = " + selectedImageUri);
if(selectedImageUri!=null){
Bitmap bmp= BitmapFactory.decodeStream(getContentResolver().openInputStream(selectedImageUri));
Log.e("bmp "," = " + bmp);
iv.setImageBitmap(bmp);
Log.e("bmp ", " Displaying Imageview WIth Bitmap !!!! = ");
}
}
catch (FileNotFoundException fe)
{
fe.printStackTrace();
}
}}
這裏是Menifest.xml相機許可文件
<uses-feature android:name="android.hardware.camera"/>
<uses-permission android:name="android.permission.CAMERA"/>
,這裏是我的logcat錯誤
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=9999, result=-1, data=null} to activity {com.example.tazeen.demo3/com.example.tazeen.demo3.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.net.Uri android.content.Intent.getData()' on a null object reference
at android.app.ActivityThread.deliverResults(ActivityThread.java:3568)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3611)
at android.app.ActivityThread.access$1400(ActivityThread.java:147)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1345)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:898)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.net.Uri android.content.Intent.getData()' on a null object reference
at com.example.tazeen.demo3.MainActivity.onActivityResult(MainActivity.java:55)
at android.app.Activity.dispatchActivityResult(Activity.java:6135)
at android.app.ActivityThread.deliverResults(ActivityThread.java:3564)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3611)
at android.app.ActivityThread.access$1400(ActivityThread.java:147)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1345)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:898)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)
11-23 15:10:34.367 647-1092/? E/ActivityManager﹕ Invalid thumbnail dimensions: 384x384
\ <使用的許可機器人:名稱= 「android.permission.WRITE_EXTERNAL_STORAGE」/> <使用的許可機器人:名稱= 「android.permission.READ_EXTERNAL_STORAGE」/> –
我這個兩個語法menifest文件但得到相同的錯誤=引起:java.lang.NullPointerException:嘗試調用com.example.tazeen.demo3上的空對象引用 上的虛擬方法'android.net.Uri android.content.Intent.getData()'。 MainActivity.onActivityResult(MainActivity.java:55) –
其實際返回null –