图片保存在图库中显示

public  void saveImageToGallery(Context context, Bitmap bmp) {
    /*// 首先保存图片
    File appDir = new File(Environment.getExternalStorageDirectory(), "Boohee");
    if (!appDir.exists()) {
        appDir.mkdir();
    }
    String fileName = System.currentTimeMillis() + ".jpg";
    File file = new File(appDir, fileName);
    try {
        FileOutputStream fos = new FileOutputStream(file);
        bmp.compress(Bitmap.CompressFormat.JPEG, 100, fos);
        fos.flush();
        fos.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    // 其次把文件插入到系统图库
    try {
        MediaStore.Images.Media.insertImage(context.getContentResolver(),
                file.getAbsolutePath(), fileName, null);
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
    // 最后通知图库更新
    context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + path)));*/
    File file = new File(Environment.getExternalStorageDirectory(),System.currentTimeMillis()
            + ".jpg");

    try {
        FileOutputStream stream = new FileOutputStream(file);

        bmp.compress(Bitmap.CompressFormat.JPEG, 100, stream);

        //发送广播让系统重新刷新指定图片
        Intent intent =new Intent();
        intent.setAction(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);

        Uri uri=Uri.fromFile(file);
        intent.setData(uri);
        sendBroadcast(intent);
        Toast.makeText(getApplicationContext(), "保存路径:"+file.getAbsolutePath(),
                Toast.LENGTH_SHORT).show();

    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
}

你可以通过以下步骤在Android应用点击按钮选择照片并显示: 1. 在你的布局文件添加一个按钮和一个ImageView组件: ```xml <Button android:id="@+id/btn_choose_image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Choose Image" /> <ImageView android:id="@+id/image_view" android:layout_width="match_parent" android:layout_height="wrap_content" /> ``` 2. 在你的Activity添加以下代码: ```java private static final int PICK_IMAGE_REQUEST = 1; private Button mButtonChooseImage; private ImageView mImageView; private Uri mImageUri; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mButtonChooseImage = findViewById(R.id.btn_choose_image); mImageView = findViewById(R.id.image_view); mButtonChooseImage.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { openFileChooser(); } }); } private void openFileChooser() { Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(intent, PICK_IMAGE_REQUEST); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) { mImageUri = data.getData(); Glide.with(this).load(mImageUri).into(mImageView); } } ``` 在这个代码,我们首先定义了一个常量PICK_IMAGE_REQUEST,用于标识选择图片的请求。然后在onCreate方法,我们获取了按钮和ImageView的实例,并为按钮添加了一个点击事件监听器。当按钮被点击时,我们调用openFileChooser方法打开图库,并在onActivityResult方法处理选择图片的结果。 在openFileChooser方法,我们创建了一个Intent对象,并设置其类型为image/*,这样它只会显示图片文件。然后我们使用startActivityForResult方法启动该Intent。 最后,在onActivityResult方法,我们检查请求码和结果码是否匹配,并检查返回的Intent是否包含数据。如果是,我们将URI保存在mImageUri变量,并使用Glide库将其加载到ImageView。 需要注意的是,你需要在你的AndroidManifest.xml文件添加以下权限: ```xml <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> ``` 这个权限将允许你的应用程序读取设备上的图库文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值