0

Мне нужно изменить размер изображений в соответствии с размером экрана устройства. Я могу сделать это для отдельных изображений по одному, в настоящее время я имею дело с 18 изображениями. Код будет слишком неуклюжим и трудным в работе. Самое главное в моем коде, мне нужно создать матрицу для хранения изображения после создания. Я следую этой ссылке Resize Bitmap image?.Как получить несколько изображений из Res/draw с помощью BitmapFactory.decodeResource

Как загрузить несколько изображений, чтобы я мог делать это легко и эффективно.

+0

«Мне нужно, чтобы создать матрицу для сохранения изображения после его создания» .. какой вид матрицы? – gaurav5430

+0

Матрица для хранения изображения. – Sham

+0

матрица, чтобы уменьшить изображение? что вы имеете в виду? – pskink

ответ

0
@SuppressLint("NewApi") 
    public static int getDeviceWidth(Activity activity) { 
     int deviceWidth = 0; 

     Point size = new Point(); 
     WindowManager windowManager = activity.getWindowManager(); 

     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
      windowManager.getDefaultDisplay().getSize(size); 
      deviceWidth = size.x; 
     } else { 
      Display display = windowManager.getDefaultDisplay(); 
      deviceWidth = display.getWidth(); 
     } 
     return deviceWidth; 
    } 

    @SuppressLint("NewApi") 
    public static int getDeviceHeight(Activity activity) { 
     int deviceHeight = 0; 

     Point size = new Point(); 
     WindowManager windowManager = activity.getWindowManager(); 

     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
      windowManager.getDefaultDisplay().getSize(size); 
      deviceHeight = size.y; 
     } else { 
      Display display = windowManager.getDefaultDisplay(); 
      deviceHeight = display.getHeight(); 
     } 
     return deviceHeight; 
    } 

// выше функция ПОЛУЧИТЬ ширину устройства и высоту

public static Bitmap getBitmapFromPath(String sdCardPath, Activity activity) { 
     // TODO Auto-generated method stub 
     return decodeSampledBitmapFromResource(sdCardPath, 
       getDeviceWidth(activity), getDeviceHeight(activity)); 
    } 

база на getBitmapFromPath() вы можете установить изображение в качестве устройства конкретного .. getBitmapFromPath вызова() в вашей деятельности, когда вы извлекаете путь изображения.

// отредактирован ответа

final R.drawable drawableResources = new R.drawable(); 
final Class<R.drawable> c = R.drawable.class; 
final Field[] fields = c.getDeclaredFields(); 

for (int i = 0, max = fields.length; i < max; i++) { 
    final int resourceId; 
    try { 
     resourceId = fields[i].getInt(drawableResources); 
    } catch (Exception e) { 
     continue; 
    } 
    /* make use of resourceId for accessing Drawables here */ 
} 
+0

Спасибо за новый подход. Это лучше, чем предыдущий, но у меня есть изображение, сохраненное в Res/Drawable. Я могу сделать одно изображение за раз, но я хочу узнать, как я могу восстановить все (18 изображений) за раз с помощью BitmapFactory.decodeResource (Resources, R.id); функция – Sham

+0

, пожалуйста, проверьте измененный ans – dipali

+0

спасибо за помощь – Sham

Смежные вопросы