我已经为listview提供了边框。 并在列表项中给出背景图像。 所以由于列表项的背景图像列表视图的边框隐藏。
listview
<ListView
android:id="@+id/listViewsea"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginBottom="5dp"
android:cacheColorHint="#0000"
android:clipToPadding="true"
android:scrollbars="none"
android:listSelector="@android:color/transparent"
android:divider="#00000000"
android:paddingBottom="5dp"
android:background="@drawable/cornerborder"
>
</ListView>
cornerborder.xml
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<stroke
android:width="1dp"
android:color="#457DB6" />
<gradient
android:angle="225"
android:endColor="#457DB6"
android:startColor="#457DB6" />
<corners
android:bottomLeftRadius="15dp"
android:bottomRightRadius="15dp"
android:topLeftRadius="15dp"
android:topRightRadius="15dp" />
</shape>
在listAdapter中
if(position%2 == 0)
{
convertView.setBackgroundResource(R.drawable.commonrow_type_1_straight);
}else
{
convertView.setBackgroundResource(R.drawable.commonrow_type_2_straight);
}
答案 0 :(得分:1)
感谢上帝终于得到了解决方案........ 这里是XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:background="@drawable/lineargallarybackground"
android:clipChildren="true"
android:orientation="vertical" >
<TextView
android:id="@+id/textlisttitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/titlebackground"
android:gravity="center_horizontal|center_vertical"
android:text="Kuwait" >
</TextView>
<ListView
android:id="@+id/listViewsea"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginBottom="5dp"
android:cacheColorHint="#0000"
android:clipChildren="true"
android:clipToPadding="true"
android:divider="#00000000"
android:listSelector="@android:color/transparent"
android:scrollbars="none" >
</ListView>
</LinearLayout>
我在Linearlayout中设置了背景图片。
答案 1 :(得分:0)
如果有人(像我一样)正在寻找一个解决方案,将listview 直接推到舍入的边缘而不添加填充,那么这应该可以解决问题:
尝试继承ListView(或包含布局)并重写OnDraw方法,如下所示,用值替换RADIUS_IN_PIXELS:
@Override
protected void onDraw(Canvas canvas) {
Path clipPath = new Path();
clipPath.addRoundRect(new RectF(canvas.getClipBounds()), RADIUS_IN_PIXELS, RADIUS_IN_PIXELS, Path.Direction.CW);
canvas.clipPath(clipPath);
super.onDraw(canvas);
}
...并创建一个像这样的自定义drawable,称为'rounded',替换为YOUR_BACKGROUND_COLOR和RADIUS_IN_DP,确保将DP中矩形的舍入与PX中之前的剪切半径相匹配:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="RADIUS_IN_DP" />
<solid android:color="YOUR_BACKGROUND_COLOR"/>
</shape>
然后您可以在布局中使用该子类,将以下行添加到ListView或包含布局:
android:background="@drawable/rounded"
android:clipChildren="true"
所有孩子都将剪辑到您在OnDraw()覆盖中指定的边界,并且将根据您的“圆形”绘图添加背景。