为了账号安全,请及时绑定邮箱和手机立即绑定

ImageView 不显示位图

ImageView 不显示位图

犯罪嫌疑人X 2021-06-04 17:08:22
我正在尝试使用 Bitmap 和 Bitmap 显示 ImageView 从 sharedpref 路径中获取它的值 /// Activity Fields   ٍString mWinPhotoPath, mLosePhotoPath;    ImageView winnerImage, loserImage;    Bitmap winImage, loseImage;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_winner);//// Get shared pref values        mWinPhotoPath = **sharedPreferences.getString(getString(R.string.sharedPreferences_winner_pic), getString(R.string.error_sorry_message));  // win pic        mLosePhotoPath = sharedPreferences.getString(getString(R.string.sharedPreferences_loser_pic), getString(R.string.error_sorry_message)); // lose pic** **winImage = BitmapFactory.decodeFile(mWinPhotoPath);loseImage = BitmapFactory.decodeFile(mLosePhotoPath);**// Activity Objects        **winnerImage = findViewById(R.id.winner_image);**        **loserImage = findViewById(R.id.loser_image);**// set values          **winnerImage.setImageBitmap(winImage);**          **loserImage.setImageBitmap(loseImage);**我的日志中没有任何错误,但问题是 ImageView 没有显示 Bitmap 我还检查了共享首选项是否正确获取了路径值我的代码中是否有任何逻辑错误!?有什么问题 ?
查看完整描述

2 回答

?
largeQ

TA贡献2039条经验 获得超7个赞

如果您将文件路径存储在 SharedPrefence 中,那么您可以使用其路径将文件解码为位图。


        File f = new File(file path....);

        Bitmap map = BitmapFactory.decodeFile(f.getAbsolutePath());

        image.setImageBitmap(map);

或者


            String fileName = "...."; // file path

            File completeFile = new File(fileName);

            FileInputStream readPicture = new FileInputStream(completeFile);

            BufferedInputStream bf = new BufferedInputStream(readPicture);

            Bitmap bitmap = BitmapFactory.decodeStream(bf);


查看完整回答
反对 回复 2021-06-10
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

要从路径中获取位图,您需要使用下面的代码


File image = new File(mWinPhotoPath, imageName);

BitmapFactory.Options bmOptions = new BitmapFactory.Options();

Bitmap bitmap = BitmapFactory.decodeFile(image.getAbsolutePath(),bmOptions);

winImage = Bitmap.createScaledBitmap(bitmap,parent.getWidth(),parent.getHeight(),true);


查看完整回答
反对 回复 2021-06-10
  • 2 回答
  • 0 关注
  • 143 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信