对角线在整个视图
问题描述:
基于一些条件,我不得不对角地切割列表单元格。为此,我已经使用这个代码所做的对角线绘制的图像:对角线在整个视图
diagonal_line.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:top="0dp"
android:bottom="0dp"
>
<rotate
android:fromDegrees="315"
android:toDegrees="315"
android:pivotX="0%"
android:pivotY="0%" >
<shape
android:shape="line"
>
<stroke
android:width="10dp"
android:color="@color/grey" />
</shape>
</rotate>
</item>
</layer-list>
在列表元素的XML它被用作:
<ImageView
android:layout_height="match_parent"
android:layout_width="match_parent"
android:background="@drawable/diagonal_line"
android:layerType="software"
android:scaleType="fitXY"
/>
此对角线出现在图形单元格的xml视图,但没有列表后被夸大。目前,其可见度与任何条件无关,即可见度始终为真。
任何想法的问题是什么?对于对角线
答
自定义的看法是:
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;
public class DiagonalLineView extends View {
private int dividerColor;
private Paint paint;
public DiagonalLineView(Context context)
{
super(context);
init(context);
}
public DiagonalLineView(Context context, AttributeSet attrs)
{
super(context, attrs);
init(context);
}
public DiagonalLineView(Context context, AttributeSet attrs, int defStyle)
{
super(context, attrs, defStyle);
init(context);
}
private void init(Context context)
{
Resources resources = context.getResources();
dividerColor = resources.getColor(R.color.grey);
paint = new Paint();
paint.setAntiAlias(true);
paint.setColor(dividerColor);
paint.setStrokeWidth(resources.getDimension(R.dimen.vertical_divider_width));
}
@Override
protected void onDraw(Canvas canvas)
{
super.onDraw(canvas);
canvas.drawLine(0, getHeight(), getWidth(), 0, paint);
}
}
它为我工作。
你可以发布你的适配器xml吗?是否存在与适配器的getView重叠的内容。 – Pr38y 2014-10-09 12:16:16
在适配器中,只设置了文本。在列表单元格的xml中,这是要绘制的最后一个视图,其余视图是文本视图。 – seema 2014-10-09 12:43:51
@seema你可以添加截图吗? – 2014-10-09 12:55:29