图像按钮打开手机Gallery并在Android上显示图片

图像按钮打开手机Gallery并在Android上显示图片,android,imagebutton,Android,Imagebutton,我试着寻找代码,帮助我从手机的多媒体资料中选择图片,然后在应用程序中选择图像按钮,但是,大多数代码都带有图像视图 我想知道是否有人可以帮我演示如何执行此操作,请?首先在xml中创建图像按钮: <ImageButton android:id="@+id/image_button" android:layout_width="100dp" android:layout_height="100dp" android:scaleType="fitCenter"/&g

我试着寻找代码,帮助我从手机的多媒体资料中选择图片,然后在应用程序中选择图像按钮,但是,大多数代码都带有图像视图


我想知道是否有人可以帮我演示如何执行此操作,请?

首先在xml中创建图像按钮:

<ImageButton
    android:id="@+id/image_button"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:scaleType="fitCenter"/>
  • 在OnCreate方法中,找到此按钮并设置OnClickListener:

    imageButton = (ImageButton) findViewById(R.id.image_button);
    imageButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
            photoPickerIntent.setType("image/*");
            startActivityForResult(photoPickerIntent, 500);
        }
    });
    
  • 覆盖onActivityResult:

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    
    switch(requestCode) {
        case 500:
            if(resultCode == RESULT_OK){
                try {
                    final Uri imageUri = data.getData();
                    final InputStream imageStream = getActivity().getContentResolver().openInputStream(imageUri);
                    final Bitmap selectedImage = BitmapFactory.decodeStream(imageStream);
                    imageButton.setImageBitmap(selectedImage);
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                }
    
            }
        }
    }
    

  • ImageView与ImageButton没有什么不同,那么您尝试的代码或错误在哪里?我没有尝试,因为我不知道该做什么,或者说实话,从哪里开始@cricket\u 007制作布局?找到一个视图?附加单击侦听器?找到Stackoverflow上可能已回答的问题,即如何打开图库以获取图片。。。艾奇@damian非常感谢你的代码,但出于某种原因,我在getActivity方法上遇到了一个错误,而且只有这一部分,应该是其他的吗?
    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    
    switch(requestCode) {
        case 500:
            if(resultCode == RESULT_OK){
                try {
                    final Uri imageUri = data.getData();
                    final InputStream imageStream = getActivity().getContentResolver().openInputStream(imageUri);
                    final Bitmap selectedImage = BitmapFactory.decodeStream(imageStream);
                    imageButton.setImageBitmap(selectedImage);
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                }
    
            }
        }
    }