• Android显示等宽图片的问题


    安卓开发常遇到一个问题,就是在listView里面,在不知道图片宽高的前提下,另图片布满屏幕(图片宽度等于屏幕宽度,高度自适应)。在listView中,只是设置scaleType,imageView.setBackground()是一定程度上导致图片拉伸失真,setImageDrawable()则不能满屏。参考网上的几种方案,自己总结了一个比较简单可用的:

    imageView布局:

     1 <ImageView 
     2         android:id="@+id/imgIco"
     3         android:layout_width="wrap_content"        
     4         android:layout_height="wrap_content"
     5         android:layout_marginLeft="15dp"
     6         android:layout_marginRight="15dp"
     7         android:layout_marginTop="10dp" 
     8         android:adjustViewBounds="true" 
     9         android:scaleType="fitCenter"  
    10         />

    其中,ajustViewBounds要设置为true,fitCenter居中对齐(如果直接设置了width为math_content也可以实现了,只是如果一些图片很长,会导致listView的item布局也很长)

    然后,在代码里面设置ImageView最大宽度和最大高度,因为adjustViewBounds属性只有在设置了最大高度和最大宽度后才会起作用:

    1                 WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
    2                 int screenWidth = wm.getDefaultDisplay().getWidth();
    3                 ViewGroup.LayoutParams lp = holder.imgIco.getLayoutParams();
    4                 lp.width = screenWidth;
    5                 lp.height = LayoutParams.WRAP_CONTENT;
    6                 holder.imgIco.setLayoutParams(lp);
    7                 holder.imgIco.setMaxWidth(screenWidth);
    8                 holder.imgIco.setMaxHeight(screenWidth * 5);//这里其实可以根据需求而定,我这里测试为最大宽度的5倍
  • 相关阅读:
    The Django Book学习笔记 04 模板
    The Django Book学习笔记
    Python标准库 datetime
    Python %s和%r的区别
    Python转载
    Python while 1 和 while True 速度比较
    Git 时光穿梭鸡 删除文件 以及批量删除文件
    git reset soft,hard,mixed之区别深解
    Git 时光穿梭鸡 撤销修改
    Git 时光穿梭鸡 管理修改
  • 原文地址:https://www.cnblogs.com/chq3272991/p/5332119.html
Copyright © 2020-2023  润新知