问题可能有点明显,但情况如下:
在我的应用程序(googleMaps v2)中,我有一个自定义标记,它有一个图像视图(从相机意图中获取的图像)。因此,一旦应用程序在SQlite数据库中重新启动,我已经保存了再次加载图像所需的所有信息。但问题是当试图将图像加载到布局时,没有显示任何内容,但是当我在我的活动中创建一个Imageview时(即不在布局中),然后显示图像,但显然在地图上我不知道我想要。
所以这是我在ImageView中加载图像的代码从相机意图返回时(这可行)
@Override
public View getInfoContents(Marker marker)
{
View v = getLayoutInflater().inflate(R.layout.infowindow_layout, null);
ImageView markerIcon = (ImageView) v.findViewById(R.id.PicView);
Bitmap bitmap = myMarkersHash.get(marker.getId());
markerIcon.setImageBitmap(bitmap);
然后在应用程序重新启动时尝试从数据库加载:
filep = arg1.getString(arg1.getColumnIndex(LocationsDB.FIELD_FILEPATH));
....
View view = getLayoutInflater().inflate(R.layout.infowindow_layout, null);
ImageView image = (ImageView) view.findViewById(R.id.PicView);
Bitmap myImage = BitmapFactory.decodeFile(filep);
image.setImageBitmap(myImage);
然后没有显示
有谁能告诉我为什么图像不显示? PS没有错误消息或任何我可以添加到此问题的内容。
答案 0 :(得分:0)
如果要将文件路径存储在filep中,那么它应该是:
Bitmap myImage = BitmapFactory.decodeFile(filep);
在回复下面的评论时,您可以尝试添加配置选项ARGB_8888以保留文件,例如:
filep = arg1.getString(arg1.getColumnIndex(LocationsDB.FIELD_FILEPATH));
....
View view = getLayoutInflater().inflate(R.layout.infowindow_layout, null);
ImageView image = (ImageView) view.findViewById(R.id.PicView);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
Bitmap myImage = BitmapFactory.decodeFile(filep, options);
image.setImageBitmap(myImage);