【问题标题】:Android set imageView background and sourceAndroid设置imageView背景和源码
【发布时间】:2011-12-22 14:19:23
【问题描述】:

我需要一些帮助来设置 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 的宽度和高度。希望你得到我想要的。

提前致谢!

【问题讨论】:

    标签: android android-imageview


    【解决方案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; 
    

    使用此屏幕宽度,您可以设置视图或位图大小。

    【讨论】:

    • 我的问题是如何设置imageview的默认大小并始终保持在这个大小,无论它的内容是否大于或小于那个大小。
    • 好吧,那我不明白你为什么提到设备显示宽度的 25%。您可以使用 dp 设置尺寸,我将编辑我的答案。
    猜你喜欢
    • 1970-01-01
    • 2010-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多