Android GrildView实现每一项等高宽,铺满屏幕
来源:互联网 发布:安恒数据库审计系统 编辑:程序博客网 时间:2024/05/16 10:46
先上效果图:
图片是等高宽的,并且会根据不同的屏幕分辨率自动适应。
实现方法:
在grildview中配置以下属性。
android:numColumns="auto_fit"android:columnWidth="100dp"android:stretchMode="columnWidth"
columnWidth只是默认100dp。以上属性的意思是Grildview会根据默认的100dp计算一行能放多少个,多出的部分平均分配给每一项,这样就实现了宽度的自适应。
接下来解决高度:
这里的高度是在item的布局来实现的,思路是自定义一个布局,该布局重新测量实现自身布局的等高宽,然后用该布局来加载item。
这样综合上面:
grildview首先平均分配每一项的宽度,item的布局在绘制加载的时候会根据这个分配的宽度来绘制自身的高宽以实现等高宽。
自定义的布局(就是实现更高宽):
import android.content.Context;import android.util.AttributeSet;import android.widget.LinearLayout;/** * Created by Administrator on 2016/9/14. */public class GrildImgLayout extends LinearLayout { public GrildImgLayout(Context context) { super(context); } public GrildImgLayout(Context context, AttributeSet attrs) { super(context, attrs); } public GrildImgLayout(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { setMeasuredDimension(getDefaultSize(0, widthMeasureSpec), getDefaultSize(0, heightMeasureSpec)); int childWidthSize = getMeasuredWidth(); int childHeightSize = getMeasuredHeight(); //高度和宽度一样 heightMeasureSpec = widthMeasureSpec = MeasureSpec.makeMeasureSpec(childWidthSize, MeasureSpec.EXACTLY); super.onMeasure(widthMeasureSpec, heightMeasureSpec); }}
用该布局实现item布局:
<?xml version="1.0" encoding="utf-8"?><com.inext.test.admin.ui.customview.GrildImgLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="match_parent" android:layout_width="wrap_content"> <ImageView android:id="@+id/img" android:scaleType="fitXY" android:layout_width="match_parent" android:layout_height="match_parent"> </ImageView></com.inext.test.admin.ui.customview.GrildImgLayout>
接下来就是像以往那样使用grildview 和 上面的item布局就可以了。
0 0
- Android GrildView实现每一项等高宽,铺满屏幕
- 【Android开发】自定义ListView,使用通用适配器,并实现ListView上的每一项和每一项上的按钮等控件同时监听
- Android获取屏幕宽高,密度等
- android videoview视频铺满屏幕
- Android 自定义 Dialog 无法横向铺满屏幕
- Android ListView中每一项有不同的布局的优化实现
- Android 屏幕宽高,
- ListView的每一项布局文件行高问题
- js 、jquery获取屏幕等高宽
- 使用ffmpeg的lib库实现视频窗口 原始宽高比例/拉伸铺满
- 自定义GrildView实现单选功能
- Android ListView中 每一项都有不同的布局
- Android ListView中 每一项都有不同的布局
- Android ListView中 每一项都有不同的布局
- Android ListView中 每一项都有不同的布局
- Android ListView中 每一项都有不同的布局
- Android ListView中 每一项都有不同的布局
- android取屏幕宽高
- 一段监控cli模式下运行php十分正常运行的shell脚本
- systrace使用方式
- cos在Struts2上传文件IO报错及其解决方案
- Node.js开发的WeMall 6.0正式发布
- CodeForces 358A - Dima and Continuous Line(模拟)
- Android GrildView实现每一项等高宽,铺满屏幕
- mbse简介
- android JNI RSA 3DES BASE64 加解密实现
- 2016年9月14号
- 第一次写博客,好激动啊
- addslashes与mysql_real_escape_string的区别
- SpringMVC第一步
- JS判断浏览器iOS(iPhone)、Android手机移动端
- 多重继承的识别