广

android开发

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    android开发之方形圆角listview代码分享

    2018-04-09 07:42:32 次阅读 稿源:互联网
    广告

    先看效果图:

    首先,你得写一个类我们命名为CornerListView

    [java]

    代码如下:

    /**
     * 圆角ListView示例
     * @Description: 圆角ListView示例
     * @FileName: CornerListView.java
     */
    public class CornerListView extends ListView {
        public CornerListView(Context context) {
            super(context);
        }

        public CornerListView(Context context, AttributeSet attrs, int defStyle) {
            super(context, attrs, defStyle);
        }

        public CornerListView(Context context, AttributeSet attrs) {
            super(context, attrs);
        }

        @Override
        public boolean onInterceptTouchEvent(MotionEvent ev) {
            switch (ev.getAction()) {
            case MotionEvent.ACTION_DOWN:
                    int x = (int) ev.getX();
                    int y = (int) ev.getY();
                    int itemnum = pointToPosition(x, y);

                    if (itemnum == AdapterView.INVALID_POSITION)
                            break;                 
                    else{
                        if(itemnum==0){
                            if(itemnum==(getAdapter().getCount()-1)){                                    
                                setSelector(R.drawable.<SPAN style="COLOR: #ff0000">app_list_corner_round</SPAN>);
                            }else{
                                setSelector(R.drawable.<SPAN style="COLOR: #ff0000">app_list_corner_round_top</SPAN>);
                            }
                        }else if(itemnum==(getAdapter().getCount()-1))
                                setSelector(R.drawable.<SPAN style="COLOR: #ff0000">app_list_corner_round_bottom</SPAN>);
                        else{                            
                            setSelector(R.drawable.<SPAN style="COLOR: #ff0000">app_list_corner_shape</SPAN>);
                        }
                    }

                    break;
            case MotionEvent.ACTION_UP:
                    break;
            }

            return super.onInterceptTouchEvent(ev);
        }
    }

    /**
     * 圆角ListView示例
     * @Description: 圆角ListView示例
     * @FileName: CornerListView.java
     */
    public class CornerListView extends ListView {
        public CornerListView(Context context) {
            super(context);
        }

        public CornerListView(Context context, AttributeSet attrs, int defStyle) {
            super(context, attrs, defStyle);
        }

        public CornerListView(Context context, AttributeSet attrs) {
            super(context, attrs);
        }

        @Override
        public boolean onInterceptTouchEvent(MotionEvent ev) {
            switch (ev.getAction()) {
            case MotionEvent.ACTION_DOWN:
                    int x = (int) ev.getX();
                    int y = (int) ev.getY();
                    int itemnum = pointToPosition(x, y);

                    if (itemnum == AdapterView.INVALID_POSITION)
                            break;               
                    else{
                     if(itemnum==0){
                            if(itemnum==(getAdapter().getCount()-1)){                                  
                                setSelector(R.drawable.app_list_corner_round);
                            }else{
                                setSelector(R.drawable.app_list_corner_round_top);
                            }
                     }else if(itemnum==(getAdapter().getCount()-1))
                             setSelector(R.drawable.app_list_corner_round_bottom);
                     else{                          
                         setSelector(R.drawable.app_list_corner_shape);
                     }
                    }

                    break;
            case MotionEvent.ACTION_UP:
                    break;
            }

            return super.onInterceptTouchEvent(ev);
        }
    }


    其中,app_list_corner_round

    [html]

    代码如下:

    <SPAN style="COLOR: #333333"><?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android">
        <gradient android:startColor="#BFEEFF" 
            android:endColor="#40B9FF" 
            android:angle="270"/>
        <corners android:topLeftRadius="6dip"
            android:topRightRadius="6dip"
            android:bottomLeftRadius="6dip"
            android:bottomRightRadius="6dip"/>
    </shape> </SPAN>

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android">
        <gradient android:startColor="#BFEEFF"
            android:endColor="#40B9FF"
            android:angle="270"/>
        <corners android:topLeftRadius="6dip"
            android:topRightRadius="6dip"
            android:bottomLeftRadius="6dip"
            android:bottomRightRadius="6dip"/>
    </shape>


    app_list_corner_round_top

    [html]
    代码如下:

    <SPAN style="COLOR: #333333"><?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android">
        <gradient android:startColor="#BFEEFF" 
            android:endColor="#40B9FF" 
            android:angle="270"/>
        <corners android:topLeftRadius="6dip"
            android:topRightRadius="6dip"/>
    </shape> </SPAN>

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android">
        <gradient android:startColor="#BFEEFF"
            android:endColor="#40B9FF"
            android:angle="270"/>
        <corners android:topLeftRadius="6dip"
            android:topRightRadius="6dip"/>
    </shape>

    app_list_corner_round_bottom

    [html]
    代码如下:

    <SPAN style="COLOR: #333333"><?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android">
        <gradient android:startColor="#BFEEFF" 
            android:endColor="#40B9FF" 
            android:angle="270"/>
        <corners android:bottomLeftRadius="6dip"
            android:bottomRightRadius="6dip" />
    </shape> </SPAN>

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android">
        <gradient android:startColor="#BFEEFF"
            android:endColor="#40B9FF"
            android:angle="270"/>
        <corners android:bottomLeftRadius="6dip"
            android:bottomRightRadius="6dip" />
    </shape>

    app_list_corner_shape
    [html]
    代码如下:

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android">
        <gradient android:startColor="#BFEEFF" 
            android:endColor="#40B9FF" 
            android:angle="270"/>
    </shape> 

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android">
        <gradient android:startColor="#BFEEFF"
            android:endColor="#40B9FF"
            android:angle="270"/>
    </shape>


    写好了之后,就可以在你的代码中直接像listview一样调用。

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告