在ImageView中显示位图

时间:2014-06-20 21:01:29

标签: android string bitmap imageview uri

我想显示以前活动中从图库中选取的图像,以便将来显示为位图,以便我能够旋转它和类似的东西。我想将位图显示为具有由我确定的大小的完整图片(例如128x128)。我不知道如何从字符串中获取位图。当我想这样做时,它表示存在非此类文件。还有其他更好的方法吗? 挖掘当前代码(正确显示),但它仍然不是位图,如下所示。 来自MainActivity(第一项活动):

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

    final Button browse = (Button) findViewById(R.id.browse);

    browse.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent picker = new Intent();
            picker.setType("image/*");
            picker.setAction(Intent.ACTION_PICK);
            startActivityForResult(picker, SELECT_PICTURE);
        }
    });
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {

    Uri selectedImage = null;

    if (resultCode == RESULT_OK) {
        if (requestCode == SELECT_PICTURE) {
            selectedImage = Uri.parse(data.getDataString());
            Intent pickerResult = new Intent(MainActivity.this, EditActivity.class);
            pickerResult.putExtra("IMAGE", selectedImage.toString());
            startActivity(pickerResult);
        }

下一个活动(第二个):

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_edit);

    imageView = (ImageView) findViewById(R.id.imageView);

    if (getIntent().hasExtra("IMAGE")) {
        String pickedImage = getIntent().getStringExtra("IMAGE");
        imageView.setImageURI(Uri.parse(pickedImage));
    }

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找BitmapFactory.decodeFile:

http://developer.android.com/reference/android/graphics/BitmapFactory.html#decodeFile(java.lang.String)

这将采取路径(您可能需要从Uri中删除file://,或者只是取Uri的路径部分而不是toString并将其添加到字符串中)并且把你带回位图。