Android设置了imageView背景和来源

时间:2011-12-22 14:19:23

标签: android android-imageview

我需要一些设置imageview固定大小的帮助。这是我的情况。我希望根据设备的屏幕宽度和高度调整应用程序中所有imageview的大小。例如,我希望listview中的图像宽度=设备显示宽度的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);

在这个示例代码中,我只是在我的listview项目上将透明图像设置为默认图像,其大小与我想要的一样。但我想要做的是,设置imageview的大小,如果我从服务器收到的图像小于默认大小,不适合,只需保持在这个“占位符”的中心。如果它很大,我将不得不在imageview中适应它。

所以基本上我的问题是:我如何以编程方式设置ImageView的宽度和高度而不适合他的内容。希望你得到我想要的东西。

提前致谢!

1 个答案:

答案 0 :(得分: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; 

使用此screenWidth,您可以设置视图或位图大小。