繁体   English   中英

上传您自己的头像

[英]Upload your own profile picture

当我启动应用程序时,我使用 Picasso 将图像上传到 imageview。 我试图让用户上传他们自己的图片。 如果我从画廊拍摄照片或 select 它,我可以在 imageview 显示它。 但是我想在下次加载应用程序时使用 SharedPreferences 来显示图像,不幸的是我不能这样做。 这是我的代码。

private void showImageOptionDialog(){
        final String[] options = getResources().getStringArray(R.array.image_options);
        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setTitle(R.string.alert_dialog_title)
                .setItems(options, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                        switch (which){
                            case 0:
                                Intent cameraIntent = new Intent();
                                cameraIntent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
                                startActivityForResult(cameraIntent, 11);
                                break;
                            case 1:
                                Intent intent = new Intent();
                                intent.setAction(Intent.ACTION_GET_CONTENT);
                                intent.setType("image/*");
                                startActivityForResult(intent, 9);
                                break;
                            case 2:
                                SaveSharedPreference.setAvatar(context, "none");
                                recreate();
                                break;
                        }
                    }
                });

        AlertDialog dialog = builder.create();
        dialog.show();
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        //Check if the intent was to pick image, was successful and an image was picked
        if(requestCode == 9 && resultCode == RESULT_OK && data != null){

            //Get selected image uri from phone gallery
            Uri selectedImage = data.getData();

            //Display selected photo in image view
            //head_image.setImageURI(selectedImage);
            assert selectedImage != null;
            SaveSharedPreference.setAvatar(context, selectedImage.toString());
        }
        //Handle camera request
        else if(requestCode == 11 && resultCode == RESULT_OK && data != null){

            //We need a bitmap variable to store the photo
            Bitmap bitmap = (Bitmap) Objects.requireNonNull(data.getExtras()).get("data");

            //Display taken picture in image view
            head_image.setImageBitmap(bitmap);
        }
        recreate();
    }

然后我尝试使用加载

Picasso.get()
                .load(SaveSharedPreference.getAvatar(context))
                .placeholder(R.mipmap.ic_launcher)
                .transform(new CropCircleTransformation())
                .into(head_image);

谢谢您的帮助

(应用程序在 Android 7.0+ 上运行)

使用SharedPreferences保存照片不是一个好主意。 尝试缓存它或使用本地数据库或文件系统来存储和/或恢复它们

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM