android开发之方形圆角listview代码分享
android开发之方形圆角listview代码分享
发布时间:2016-12-28 来源:查字典编辑
摘要:先看效果图:首先,你得写一个类我们命名为CornerListView[java]复制代码代码如下:/***圆角ListView示例*@Des...

先看效果图:

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

首先,你得写一个类我们命名为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>app_list_corner_round</SPAN>);

}else{

setSelector(R.drawable.<SPAN>app_list_corner_round_top</SPAN>);

}

}else if(itemnum==(getAdapter().getCount()-1))

setSelector(R.drawable.<SPAN>app_list_corner_round_bottom</SPAN>);

else{

setSelector(R.drawable.<SPAN>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><?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><?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><?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一样调用。

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新安卓软件开发学习
热门安卓软件开发学习
编程开发子分类