android-圆形按钮的实现+++流式布局——FlowLayout

来源:互联网 发布:机械三维建模软件 编辑:程序博客网 时间:2024/09/21 06:22

android-圆形按钮的实现

原文地址:http://www.cnblogs.com/tinyphp/p/3831562.html  (结合选择器)
android实现边框圆角  http://www.blogjava.net/gaolei-xj/archive/2012/12/19/393231.html (快速实现需求)


整理思路:

1、控件:文字TextView 和 右箭头ImageView

2、因为考虑到点击效果,设计为:最外层为全圆角,内层有四种情况,分别为上圆角、无圆角、下圆角和全圆角。

3、内层样式效果:需要初始样式、和点击样式

4、需要知识:结合style、shake、selector组合样式


其中举例圆角的背景设置为:

top_layout_select.xml

<?xml version="1.0" encoding="utf-8"?>       ——状态选择器的学习

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/top_select" android:state_pressed="true"></item>

    <item android:drawable="@drawable/top_select" android:state_focused="true"></item>

    <item android:drawable="@drawable/top_unselect"></item>

</selector>

 

 

top_select.xml

<?xml version="1.0" encoding="utf-8"?>

<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <solid android:color="#0000ff"/>

<corners android:radius="8dp"/>

</shape>

 

top_unselect.xml

<?xml version="1.0" encoding="utf-8"?>

<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <solid android:color="#ffffff"/>

    <corners android:radius="8dp"/>

</shape>

 

设置页面里面,添加了一个圆形按钮的用法——直接设置控件的backgroup就好了。

 

因为适配器里面是根据按压和点击区分的,所以设置的控件也应该拥有这两个属性!!

android:focusable="true"

android:clickable="true"



流式布局——FlowLayout

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38352503 ,本文出自【张鸿洋的博客】

拓展:
http://download.csdn.net/download/lmj623565791/7711283  网络上面的Demo可以看懂,但是原理还不是太明白,里面有注释!
示例在我的资源:安卓文档\总结文档\自定义View里面,将博客里的内容总结到一起就可以了。——和Demo差不多一样了,会用就行。
Android 手把手教您自定义ViewGroup(一)  http://blog.csdn.net/lmj623565791/article/details/38339817 


概述

何为FlowLayout,如果对Java的Swing比较熟悉的话一定不会陌生,就是控件根据ViewGroup的宽,自动的往右添加,如果当前行剩余空间不足,则自动添加到下一行。有点所有的控件都往左飘的感觉,第一行满了,往第二行飘~所以也叫流式布局。Android并没有提供流式布局,但是某些场合中,流式布局还是非常适合使用的,比如关键字标签,搜索热词列表等,比如下图:


这些都特别适合使用FlowLayout,本篇博客会带领大家自己实现FlowLayout,然后使用我们自己定义的FlowLayout实现上面的标签效果。对了,github已经有了这样FlowLayout,但是我觉得丝毫不影响我们对其的学习,学会使用一个控件和学会写一个控件,我相信大家都明白,授人以鱼不如授人以渔。


效果图:


0 0