对角线在整个视图

问题描述:

基于一些条件,我不得不对角地切割列表单元格。为此,我已经使用这个代码所做的对角线绘制的图像:对角线在整个视图

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视图,但没有列表后被夸大。目前,其可见度与任何条件无关,即可见度始终为真。

任何想法的问题是什么?对于对角线

+0

你可以发布你的适配器xml吗?是否存在与适配器的getView重叠的内容。 – Pr38y 2014-10-09 12:16:16

+0

在适配器中,只设置了文本。在列表单元格的xml中,这是要绘制的最后一个视图,其余视图是文本视图。 – seema 2014-10-09 12:43:51

+0

@seema你可以添加截图吗? – 2014-10-09 12:55:29

自定义的看法是:

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); 
} 

} 

它为我工作。