实用小控件-自定义View-矩形(正方形)

来源:互联网 发布:php评论盖楼 编辑:程序博客网 时间:2024/06/05 19:29

转载请注明出处 http://blog.csdn.net/qq_31288799 ,感谢。


这是一个根据指定模式计算宽高度的矩形,很简单的小控件,博主写这个也主要是用到正方形的情况,用于gridView的item。下面是效果图:



第一个是正方形;第二个是以宽为基准,高恒为宽的多少倍;第三个是以高为基准,宽恒为高的多少倍;第四个即是第二个,不过宽被设为屏幕的一半,高为宽的0.4倍。

有人看到这可能会说这什么嘛,跟宽高写死的效果差不多嘛。其实并不是这样,这里是可以在代码中设置的,如下:


DisplayMetrics dm = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(dm);RectLayout layout = new RectLayout(this);layout.setMode(RectLayout.MODE_WIDTH);layout.setScale(0.4);layout.setLayoutParams(new ViewGroup.LayoutParams((int) (dm.widthPixels * 0.5), ViewGroup.LayoutParams.WRAP_CONTENT));ImageView imageView = new ImageView(this);imageView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));imageView.setImageResource(R.mipmap.ic_launcher_round);imageView.setScaleType(ImageView.ScaleType.FIT_XY);layout.addView(imageView);((LinearLayout) findViewById(R.id.root)).addView(layout);

当然,也可以findView来设置,其实在这种情况还是没什么大用,只有在listView或者GridView中才能较为明显的提现出宽高比的作用。

比如listView的item中需要放一张4*3的图片时就比较实用了。


Demo戳这里

1 0
原创粉丝点击