2011-12-22 81 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