Android 自定义控件Android开发程序员

Android随机布局控件RandomLayout

2018-01-23  本文已影响223人  wkp111

Android开发中,先前有很多新闻类应用都用到了随机布局的控件,主要就是推荐一些热门标题,然后再加上切换动画,视觉效果还是不错的。今天,我们就来学习一个随机布局控件库RandomLayout,库中主要包括控件RandomLayout及其封装控件FlyLayout,下面,我们一起了解一下吧。

效果演示图

RandomLayout.gif

Android Studio集成方式

dependencies{
      compile 'com.wkp:RandomLayout:1.0.3'
      //Android Studio3.0+可用以下方式
      //implementation 'com.wkp:RandomLayout:1.0.3'
}

Note:使用版本请以Github为准。

使用详解

API介绍
1.setData 设置控件显示数据
2.setAnimationDuration 设置控件动画时长
3.setDetectorVelocity 设置屏幕滑动临界速度
4.setDefaultSize 设置数据显示文本大小
5.setTvPadding 设置数据文本内边距
6.setTvMargin 设置数据文本外边距
7.startAnimation 开启控件动画
8.setOnItemClickListener 设置条目点击监听
9.setOnAnimationEndListener 设置动画结束监听


简单示例
RandomLayout randomLayout = new RandomLayout(mContext);
randomLayout.setData((ArrayList<String>) param);
randomLayout.setOnItemClickListener(this);
randomLayout.setOnAnimationEndListener(this);
randomLayout.startAnimation();
API介绍
1.setData 设置数据
2.startAnimation 开启动画
3.setOnFlyEverythingListener 设置监听


代码示例
public class MainActivity extends AppCompatActivity {
    String[] tag1 = new String[]{
            "博鳌亚洲论坛", "哈佛商业评论", "财经国家周刊", "每日经济新闻", "中国企业家", "路透中文网", "国际金融报",
            "中国证券网", "中国经营报", "经济观察报", "中国经济网",
            "印度去年四季度GDP增7.3% 领跑全", "大年初一全国电影总票房6.6亿元刷新纪", "都说爱钱如命 你知道人民币上的姑娘是谁",
            "中国最美女富豪身价过百亿 马云曾千里寻", "100万在世界各国能买什么房 最后一张", "一个捡破烂的!他三年竟然赚了270万"};
    String[] tag2 = new String[]{   "FT中文网", "财经网", "创业家", "福布斯", "美通社", "21世纪经济报道", "华尔街见闻", "中国黄金交易网",
            "CCTV证券资讯网", "中国发展研究基金会", "证券日报", "中国民族证券", "新财富杂志", "环球企业家", "中国证券报",
            "证券时报网", "易三板", "中国金融网", "易三板", "未央网", "商学院", "欧美股市大跌 金价创八个月来新高",
            "证券市场周刊", "财新网", "华夏时报", "第一财经",
            "中国货币政策拐点或已到来", "春运最拥挤火车站公布 北京西站未进前十", "日本拟建1700米高“天空之城” 超越"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        FlyLayout flyLayout = (FlyLayout) findViewById(R.id.rl);
        flyLayout.setData(tag1,tag2);
        flyLayout.setOnFlyEverythingListener(new FlyLayout.OnFlyEverythingListener() {
            @Override
            public void onItemClick(View view, int position, String text) {
                Toast.makeText(MainActivity.this, text, Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onAnimationEnd(RandomLayout randomLayout, int animationCount) {
                Log.d("test", "randomLayout:" + randomLayout);
            }
        });
    }
}

结语

控件支持直接代码创建,还有更多API请观看RandomLayout.javaFlyLayout.java内的注释说明。
欢迎大家使用Github地址,感觉好用请给个Star鼓励一下,谢谢!
大家如果有更好的意见或建议以及好的灵感,请邮箱作者,谢谢!
QQ邮箱:1535514884@qq.com
163邮箱:15889686524@163.com
Gmail邮箱:wkp15889686524@gmail.com

上一篇 下一篇

猜你喜欢

热点阅读