У меня есть Activity, который содержит MapFragment V2 на половине экрана, а на другой половине есть еще несколько видов, таких как TextViews с подробностями.Активность с моментальным снимком MapFragment
Это как экран выглядит следующим образом:
Теперь, я хочу, чтобы сделать снимок всей деятельности включает MapFragment, но когда я пытаюсь сделать это, я получаю изображение но карта часть пустой (полностью черный)!
This is код, который я использую для снятия скриншота, и он отлично работает!
Я знаю о возможности сделать снимок MapFragment, но он занимает только область карты без остальной части экрана. Что-то вроде этого:
GoogleMap.SnapshotReadyCallback callback = new GoogleMap.SnapshotReadyCallback() {
@Override
public void onSnapshotReady(Bitmap snapshot) {
// TODO Auto-generated method stub
FileOutputStream out = null;
boolean status = true;
try {
out = new FileOutputStream(sharedImage);
snapshot = Bitmap.createScaledBitmap(snapshot, findViewById(R.id.trip_map).getWidth(),
findViewById(R.id.trip_map).getHeight(), true);
status = snapshot.compress(Bitmap.CompressFormat.JPEG, 100, out);
Toast.makeText(TripDetailsActivity.this, "save status: " + status, Toast.LENGTH_SHORT).show();
snapshot.recycle();
snapshot = null;
System.gc();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
openShareImageDialog(sharedImage);
}
};
mMap.snapshot(callback);
}
return true;
}
Кто-нибудь есть идея, как я могу взять весь снимок экрана, когда есть MapFragment там?
AFAIK Google использует OpenGL для рендеринга карты, и нет возможности захватить скриншот представлений OpenGL (кроме моментального снимка GoogleMap). – harism