从画廊拍摄的图像不会出现

时间:2017-06-15 18:10:36

标签: android imageview picasso

我使用Picasso从图库中获取图像并将其设置为ImageView,但它没有这样做。找不到问题。是什么原因?有趣的是,没有错误。我通过自己的设备测试了程序。

public class MainActivity extends AppCompatActivity {
    String imageUri ;
    ImageView img ;
    private static final int GALLERY_REQUEST = 9391;
    Button b ;

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == GALLERY_REQUEST && resultCode == RESULT_OK && data != null) {
            imageUri = data.getData().toString() ;
            loadImage() ;
        }
        else
        {
            super.onActivityResult(requestCode, resultCode, data);
        }
    }

    private void loadImage() {
        Picasso.with(this).load(imageUri).fit().centerInside().into(img);
    }

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


        img = (ImageView)findViewById(R.id.image);
        b = (Button)findViewById(R.id.button) ; // it is button used to open //a gallery
    }

    //thins function called when button pressed
    public void openGallery(View view) {
        Intent i = new Intent(ACTION_PICK,EXTERNAL_CONTENT_URI) ;

        startActivityForResult(i,GALLERY_REQUEST);
    }
}

2 个答案:

答案 0 :(得分:0)

您致电super.onActivityResult(requestCode, resultCode, data);这是错误的。

这样做

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
     super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == GALLERY_REQUEST && resultCode == RESULT_OK && data != null) {
        Uri selectedImageURI = data.getData();                 

 Picasso.with(this).load(selectedImageURI).fit().centerInside().into(img);
    }
    else
    {
        // handle this case
    }
}

答案 1 :(得分:0)

解决了问题。

我忘了添加用于读取外部存储空间的权限。