Android задава фон и източник на imageView

Имам нужда от малко помощ при настройването на фиксиран размер на изображението. Ето каква е ситуацията при мен. Искам целият размер на изображението в моето приложение да бъде преоразмерен в зависимост от ширината и височината на екрана на устройството. Например искам моето изображение в изглед на списък да бъде с ширина = 25% от ширината на дисплея на устройството. Засега мога да го направя така:

Bitmap bmp=BitmapFactory.decodeResource(acontext.getResources(), R.drawable.transparent_bg);
int width=(int) RPCCommunicator.getPlaceHolderWidth(acontext, 25);
int height=(int) RPCCommunicator.getPlaceHolderHeight(acontext, 20);
Bitmap resizedbitmap=Bitmap.createScaledBitmap(bmp, width, height, true);
mainImg.setImageBitmap(resizedbitmap);

В този примерен код просто задавам прозрачно изображение като изображение по подразбиране в моя елемент за изглед на списък с размерите, които искам. Но това, което искам да направя, е да задам размера на изгледа на изображението и ако изображението, което получавам от сървъра, е по-малко от размера по подразбиране, да не се побира, просто да остане центрирано в този "заместител". Ако е голям, ще трябва да го побера в imageview.

Така че основно въпросът ми е: Как мога да задам програмно ширината и височината на ImageView, без да пасвам на съдържанието му. Надявам се да получиш това, което искам.

Благодаря предварително!


person Android-Droid    schedule 22.12.2011    source източник


Отговори (1)


РЕДАКТИРАНЕ:

final float scale = getContext().getResources().getDisplayMetrics().density;
int pixels = (int) (width_in_dp * scale + 0.5f);

Заменете width_in_dp с желания от вас размер. Също така можете да погледнете тук: http://developer.android.com/guide/practices/screens_support.html

    DisplayMetrics dm = new DisplayMetrics();      
    getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm);                  
    int screenWidth = dm.widthPixels; 

С този screenWidth можете да задавате размери на изглед или растерно изображение.

person Dante    schedule 22.12.2011
comment
Въпросът ми е как да задам размера на изображението по подразбиране и да остана винаги в този размер, без значение дали съдържанието му е по-голямо от този размер или по-малко. - person Android-Droid; 22.12.2011
comment
Добре, тогава не разбирам защо споменахте 25% от ширината на дисплея на устройството. Можете да зададете размери с dp, ще редактирам отговора си. - person Dante; 22.12.2011