2015-06-24 3 views
0

Итак, я создаю приложение галереи, которое получает изображение в виде растрового изображения. Я хочу, чтобы приложение галереи Android по умолчанию обрабатывало это. Я использовал намерение «Обои», но он снова попросил меня выбрать, какое изображение я хотел бы установить как «Обои». Я хочу передать этот шаг и использовать выбранные растровые изображения в качестве обоев. Как мне это сделать?Android: Как получить доступ к окнам приложения галереи галереи по умолчанию, используя намерения

Любая помощь будет оценена по достоинству. Благодаря! PS: Я не хочу использовать WallpaperManager, так как у него нет опции обрезки и т. Д. Я хочу, чтобы приложение по умолчанию, чтобы справиться с этим для меня

+0

Можете ли вы опубликовать код, который вы пробовали? –

+0

Ну, попробовал использовать WallpaperManager. Вот и все. Цель Android-галереи не так уж много. Он попросил меня выбрать изображение из галереи, а затем установить его в качестве обоев (после обрезки и т. Д.). Я хочу пропустить выбор изображения и пойти прямо, чтобы установить в качестве обоев. Должен ли быть способ передать растровое изображение в приложение галереи по умолчанию и сделать что-то? – Anay

ответ

0

Это Намерение, что позволяет загружать изображения из вашей галереи (это будет 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); 

     } 
+0

Спасибо, что ответили. Однако у меня уже есть Bitmap uri. Я просто хочу использовать приложение Gallery, чтобы установить его как обои. – Anay

+0

о, извините. Я неправильно понимаю вас. – Karoly