我是android devlopment的新手,
我想要做的是,我有一张我要在地图上显示的照片列表, 对于每张照片,我将显示一个标记,当点击标记时,将弹出照片本身。
到目前为止我所做的是打开地图并根据照片位置显示标记,我现在已经实现了点击监听器以显示图像
这是我的代码:
googleMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
// get relevent photo from map
Photo photo = photoMarkers.get(marker);
if (photo == null){
Log.d("Journee", "photo is null");
return false;
}
photoPopUp(photo);
return false;
}
})
}
private void photoPopUp(Photo photo) {
// Inflate the popup
LayoutInflater inflater = (LayoutInflater) MapActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.journal_single_image, (ViewGroup) findViewById(R.id.single_image_popup));
// show popup
PopupWindow imagePopup = new PopupWindow(layout, 300, 370, true);
imagePopup.showAtLocation(layout, Gravity.CENTER, 0, 0);
// display the photo
File imgFile = new File(photo.getPathOnDevice());
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
ImageView imageView = (ImageView) findViewById(R.id.single_image_full);
if (imageView == null){
Log.d("Journee", "imageview is null");
}else {
imageView.setImageBitmap(myBitmap);
}
}
这是我的xml文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="1"
android:id="@+id/single_image_popup">
<ImageView
android:layout_width="105dp"
android:layout_height="wrap_content"
android:src="@drawable/image_placeholder"
android:id="@+id/single_image_full"
android:layout_gravity="center_horizontal"
android:layout_weight="0.22" />
</LinearLayout>
单击标记会打开我的弹出窗口,使用默认的图像占位符,但我无法将其替换为我的照片。
在我的代码的最后几行中,我得到的imageView为null
THX