Это Намерение, что позволяет загружать изображения из вашей галереи (это будет FINE для всех устройств, ЕСЛИ НЕТ, ТО АЛЬТЕРНАТИВЫ?):
Intent intent = new Intent(
Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
intent.setType("image/*");
startActivityForResult(
Intent.createChooser(intent, getResources().getString(R.string.select_a_file)),
ACTION_REQUEST_GALLERY);
Это должно быть частью вашей деятельностиOnResult. Вы можете обработать изображение здесь, что вы получили от своей галереи. В последнем ряду есть растровое изображение, это то, что пользователь выбрал из галереи:
if (resultCode == RESULT_OK && requestCode == ACTION_REQUEST_GALLERY) {
Uri selectedImageUri = data.getData();
String[] projection = {MediaStore.MediaColumns.DATA};
Cursor cursor = managedQuery(selectedImageUri, projection, null, null,
null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.MediaColumns.DATA);
cursor.moveToFirst();
String selectedImagePath = cursor.getString(column_index);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(selectedImagePath, options);
final int REQUIRED_SIZE = 200;
int scale = 1;
while (options.outWidth/scale/2 >= REQUIRED_SIZE
&& options.outHeight/scale/2 >= REQUIRED_SIZE)
scale *= 2;
options.inSampleSize = scale;
options.inJustDecodeBounds = false;
bitmap = BitmapFactory.decodeFile(selectedImagePath, options);
}
Можете ли вы опубликовать код, который вы пробовали? –
Ну, попробовал использовать WallpaperManager. Вот и все. Цель Android-галереи не так уж много. Он попросил меня выбрать изображение из галереи, а затем установить его в качестве обоев (после обрезки и т. Д.). Я хочу пропустить выбор изображения и пойти прямо, чтобы установить в качестве обоев. Должен ли быть способ передать растровое изображение в приложение галереи по умолчанию и сделать что-то? – Anay