ユーザーが場所選択ツールを使用してマップのスナップショットを撮りたいと思います。この画像をSDカードに保存しています。しかし、それは非常に品質が悪いです。なぜ私は理解できないのですか?このコード行では、画像の品質を100に設定しました:bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
非常に品質が悪く、マップアクティビティのスナップショットが小さすぎます
スナップショットは、次のようになります。
しかし、私はテキストのみ「グーグル」が含まれ、次の画像内の1つのような良質の少し大きな画像、欲しい:
をダイアログに表示されている地図の中間イメージが必要です。私はthis answer.
を以下のよ画像を処理し、スナップショットを取るの私のコードは次のとおりです。
//opening place picker activity.
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == PLACE_PICKER_REQUEST
&& resultCode == Activity.RESULT_OK) {
final Place place = PlacePicker.getPlace(this, data);
final CharSequence name = place.getName();
final CharSequence address = place.getAddress();
String attributions = (String) place.getAttributions();
if (attributions == null) {
attributions = "";
}
// tv4.setText(place.getLatLng().toString()+"\n"+name+"\n"+address+"\n"+attributions); To get latitide and longitudes.
tv4.setText(address+"\n"+attributions);
LatLngBounds selectedPlaceBounds = PlacePicker.getLatLngBounds(data);
// move camera to selected bounds
CameraUpdate camera = CameraUpdateFactory.newLatLngBounds(selectedPlaceBounds,0);
mMap.moveCamera(camera);
// take snapshot and implement the snapshot ready callback
mMap.snapshot(new GoogleMap.SnapshotReadyCallback() {
Bitmap bitmap=null;
public void onSnapshotReady(Bitmap snapshot) {
// handle snapshot here
bitmap = snapshot;
try {
FileOutputStream out = new FileOutputStream("/mnt/sdcard/Download/000p.png");
bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
Toast.makeText(Main2Activity.this,"dsfds",Toast.LENGTH_LONG).show();
} catch (Exception e) {
Toast.makeText(Main2Activity.this,e.toString(),Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
}
});
} else {
super.onActivityResult(requestCode, resultCode, data);
}
}
が、私はこれを達成するために何を変更する必要がありますか?このスナップショットを取得する他の方法はありますか?
ありがとうございました!
詳細情報を提供できますか? –
確かに、あなたは何を知りたいですか?あなたが 'mMap.move(cameraUpdate)'を呼んだ瞬間、地図は動かなければならず、時間がかかります。だから、 'mMap.move(...)'の直後に 'mMap.snapshot(...)'を呼び出すと、マップが準備できないかもしれません。私はこれをテストしていない、それは理論に過ぎませんが、答えに示唆しているものを試してみてください。 – jpvillegas