android网格布局

numColumns="auto_fit 自适应行数 android:verticalSpacing 垂直方向距离

LayoutParams. 封装了Layout的位置、高、宽等信息 1、一个确定的 2、FILL_PARENT,即填满(和父容器一样大小);3,WRAP_CONTENT,即包裹住组件就好。

SetScaleType方法。

SetScaleType(ImageView.ScaleType.CENTER) 按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示 SetScaleType(ImageView.ScaleType.CENTER_CROP) 按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽) setScaleType(ImageView.ScaleType.CENTER_INSIDE) 将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽 setScaleType(ImageView.ScaleType.FIT_CENTER) 把图片按比例扩大/缩小到View的宽度,居中显示 FIT_START, FIT_END在图片缩放效果上与FIT_CENTER一样, 只是显示的位置不同,FIT_START是置于顶部,FIT_CENTER居中,FIT_END置于底部。 FIT_XY 不按比例缩放图片,目标是把图片塞满整个View

效果图:
在这里插入图片描述

1<GridView 2 android:id="@+id/gridView" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:gravity="center" 6 android:numColumns="auto_fit" 7 8 android:verticalSpacing="5dp" 9 android:columnWidth="100dp" 10 > 11 12 </GridView> 13 14
1public class MainActivity extends Activity{ 2 private int[] incon = {R.drawable.app_icon,R.drawable.banner_1,R.drawable.banner_2,R.drawable.app_icon, 3 R.drawable.banner_1,R.drawable.banner_2,R.drawable.app_icon,R.drawable.banner_1,R.drawable.banner_2}; 4 5 @Override 6 protected void onCreate(Bundle savedInstanceState) { 7 super.onCreate(savedInstanceState); 8 setContentView(R.layout.activity_main); 9 GridView gridView = (GridView)findViewById(R.id.gridView); 10 gridView.setAdapter(new imgApdapter(this)); 11 12 } 13 14 public class imgApdapter extends BaseAdapter{ 15 private Context content; 16 public imgApdapter(Context c){ 17 content=c; 18 } 19 20 @Override 21 public int getCount() { 22 // TODO Auto-generated method stub 23 return incon.length; 24 } 25 26 @Override 27 public Object getItem(int arg0) { 28 29 return null; 30 } 31 32 @Override 33 public long getItemId(int arg0) { 34 35 return 0; 36 } 37 38 @Override 39 public View getView(int position, View convertView, ViewGroup view) { 40 ImageView imageView; 41 if(convertView==null){ 42 imageView= new ImageView(content); 43 //设置控件的宽和高 44 imageView.setLayoutParams(new GridView.LayoutParams(100,90)); 45// 按比例扩大图片的size居中显示,使得图片长()等于或大于View的长() 46 imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 47 48 }else{ 49 imageView = (ImageView)convertView; 50 } 51 imageView.setImageResource(incon[position]); 52 //返回一个图像布局。 53 return imageView; 54 } 55 56 } 57} 58 59

代码交流 2021