Java ImageView没有';t显示位图
我正在尝试使用位图显示ImageView,并从sharedpref路径获取位图的值Java ImageView没有';t显示位图,java,android,bitmap,android-imageview,Java,Android,Bitmap,Android Imageview,我正在尝试使用位图显示ImageView,并从sharedpref路径获取位图的值 /// Activity Fields ٍString mWinPhotoPath, mLosePhotoPath; ImageView winnerImage, loserImage; Bitmap winImage, loseImage; @Override protected void onCreate(Bundle savedInstanceState) {
/// 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没有显示位图
我还检查了共享pref是否正确获取路径值
我的代码中有逻辑错误吗!!?
有什么问题吗?要从路径获取位图,需要使用下面的代码
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);
若要将文件路径存储在SharedReference中,则可以使用其路径将文件解码为位图
File f = new File(file path....);
Bitmap map = BitmapFactory.decodeFile(f.getAbsolutePath());
image.setImageBitmap(map);
或
与我所做的相同的问题File f=新文件(mWinPhotoPath);winImage=BitmapFactory.decodeFile(f.getAbsolutePath());设置图像位图(winImage);为什么我要写你的代码!!这是我已经有了路径,无论我以何种方式尝试了你的代码,但它有更多的错误(imageName parent)你能建议另一个吗?看看这个问题的答案。您必须从路径获取文件。使用毕加索或Glide设置图像
String fileName = "...."; // file path
File completeFile = new File(fileName);
FileInputStream readPicture = new FileInputStream(completeFile);
BufferedInputStream bf = new BufferedInputStream(readPicture);
Bitmap bitmap = BitmapFactory.decodeStream(bf);