【问题标题】:Issues in Camera Intent and image passing相机意图和图像传递中的问题
【发布时间】:2016-05-03 21:32:22
【问题描述】:

我有一个活动,我在表面视图中打开相机并捕获图像。捕获的图像显示在图像视图的下一个活动中。但结果活动显示白屏数据未传递到结果活动请告诉我编码我如何将图像传递给下一个活动?

 public class MainActivity extends AppCompatActivity 

 {

 int REQUEST_IMAGE_CAPTURE = 1;


@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

}

public void takePicture(View v) {
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

    if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
        startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
    }

}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == REQUEST_IMAGE_CAPTURE)
    {
        if (resultCode == RESULT_OK)
        {
            Intent i = new Intent(this,Result.class);
            i.putExtra("filepath",1);
            startActivity(i);
        }
        }
    }
}

结果活动

 public class Result extends Activity


 {


 ImageView iv;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.image);
    iv = (ImageView)findViewById(R.id.imageView);
    Bundle extras = getIntent().getExtras();
    Bitmap bmp = (Bitmap) extras.getParcelable("filepath");
    iv.setImageBitmap(bmp);
    }
}

【问题讨论】:

    标签: java android android-camera-intent


    【解决方案1】:

    更改此i.putExtra("filepath",yourfilepath); 并在下一个活动中获得它..

    Intent intent=getIntent();
    String filepath=intent.getStringExtra("filepath");
    

    用位图解码..

    File sd = Environment.getExternalStorageDirectory();
    File image = new File(sd+filePath, imageName);
    BitmapFactory.Options bmOptions = new BitmapFactory.Options();
    Bitmap bitmap = BitmapFactory.decodeFile(image.getAbsolutePath(),bmOptions);
    bitmap = Bitmap.createScaledBitmap(bitmap,parent.getWidth(),parent.getHeight(),true);
    imageView.setImageBitmap(bitmap);
    

    此外,您可以在此处获取图像路径.. 在onActivityResult(...){

    Bitmap photo = (Bitmap) data.getExtras().get("data"); 
    Uri tempUri = getImageUri(getApplicationContext(), photo);
    
        // CALL THIS METHOD TO GET THE ACTUAL PATH
        String finalpath =getRealPathFromURI(tempUri)
       //now you can putextra here
    

    这里是方法。

        public Uri getImageUri(Context inContext, Bitmap inImage) {
        ByteArrayOutputStream bytes = new ByteArrayOutputStream();
        inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
        String path = Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null);
        return Uri.parse(path);
    }
    
    public String getRealPathFromURI(Uri uri) {
        Cursor cursor = getContentResolver().query(uri, null, null, null, null); 
        cursor.moveToFirst(); 
        int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA); 
        return cursor.getString(idx); 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多