Снимок экрана Google Maps на Android. Скриншот черный.Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Снимок экрана Google Maps на Android. Скриншот черный.

Сообщение Anonymous »

У меня проблема: для некоторых тестов мне нужно сделать снимок экрана моего приложения, использующего Карты Google. Когда я пытаюсь сделать снимок экрана или снимок, на снимке экрана появляются все элементы, за исключением места, где находятся Карты Google, которое отображается черным цветом.
введите здесь описание изображения
Я пытался прочитать другие статьи, в которых упоминались похожие ошибки:


Это мой код для кнопки со скриншотом:

Код: Выделить всё

click_screenshot.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Toast.makeText(MainActivity.this, "bot_screenshot", Toast.LENGTH_SHORT).show();

supportMapFragment.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(@NonNull GoogleMap googleMap) {
Toast.makeText(MainActivity.this, "Test Snapshot Google Maps 2 X", Toast.LENGTH_SHORT).show();
GoogleMap.SnapshotReadyCallback callback = new GoogleMap.SnapshotReadyCallback() {
Bitmap bitmap;
@Override
public void onSnapshotReady(Bitmap snapshot) {
//Toast.makeText(MainActivity.this, "Test Snapshot Google Maps 2 Y", Toast.LENGTH_SHORT).show();
bitmap = snapshot;
try {
Toast.makeText(MainActivity.this, "Test Snapshot Google Maps 2 Z", Toast.LENGTH_SHORT).show();

Bitmap screenshot = capturescreenshot(linearLayout1);
imageView_scre.setImageBitmap(screenshot);
storeimageasjpeg(screenshot);

} catch (Exception e) {
e.printStackTrace();
}/**/

}
};

googleMap.snapshot(callback); //si funciona

}
});

public Bitmap capturescreenshot(View view){
Toast.makeText(MainActivity.this, "capturescreenshot", Toast.LENGTH_SHORT).show();
Bitmap returnBitnap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(returnBitnap);
Drawable bgdrawable = view.getBackground();
if (bgdrawable != null){
bgdrawable.draw(canvas);
}
else {
canvas.drawColor(Color.WHITE);
}
view.draw(canvas);
return returnBitnap;
}

public void storeimageasjpeg(Bitmap bitmap){
Toast.makeText(MainActivity.this, "storeimageasjpeg", Toast.LENGTH_SHORT).show();
OutputStream outst;
try {
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q){
ContentResolver contentResolver = getContentResolver();
ContentValues contentValues = new ContentValues();
contentValues.put(MediaStore.MediaColumns.DISPLAY_NAME,"Image_"+".jpg");
contentValues.put(MediaStore.MediaColumns.MIME_TYPE,"image/jpeg");
contentValues.put(MediaStore.MediaColumns.RELATIVE_PATH, Environment.DIRECTORY_PICTURES+File.separator+"TestFolder");
Uri imageUri = contentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues);

outst = contentResolver.openOutputStream(Objects.requireNonNull(imageUri));
bitmap.compress(Bitmap.CompressFormat.JPEG,100,outst);
Objects.requireNonNull(outst);

//Toast.makeText(MainActivity.this, "Image is saved!", Toast.LENGTH_SHORT).show();

}
}
catch (Exception e){
e.printStackTrace();
}
Не могли бы вы сказать мне, что я могу сделать, чтобы исправить это и сделать это видимым?

Подробнее здесь: https://stackoverflow.com/questions/792 ... t-is-black
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»