2011-12-22 86 views
0

我需要一些設置imageview固定大小的幫助。這是我的情況。我希望根據設備的屏幕寬度和高度調整應用中所有imageview的大小。例如,我希望我的圖像在listview中的寬度爲設備顯示寬度的25%。現在我能做到這一點是這樣的:Android設置imageView背景和來源

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中使用它。

所以基本上我的問題是:我怎樣才能設置ImageView的寬度和高度編程無需他的內容。希望你得到我想要的。

在此先感謝!

回答

0

編輯:

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; 

有了這個屏幕寬度可以設置視圖或位圖的大小。

+0

我的問題是如何設置imageview的默認尺寸並始終保持在這個尺寸,無論它的內容是否大於或小於這個尺寸。 – 2011-12-22 14:42:54

+0

好吧,那麼我不明白你爲什麼提到設備顯示寬度的25%。你可以用dp設置尺寸,我會編輯我的答案。 – Dante 2011-12-22 14:57:30