2014-10-09 6 views
1

일부 조건에 따라 대각선으로 목록 셀을 잘라야합니다.대각선 가로보기

<ImageView 
    android:layout_height="match_parent" 
    android:layout_width="match_parent" 
    android:background="@drawable/diagonal_line" 
    android:layerType="software" 
    android:scaleType="fitXY" 
    /> 

이 대각선 그래픽에 나타납니다이를 위해 나는이 코드를 사용하여 대각선 당김 이미지를 만들었습니다 :로 목록 세포의 XML로

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보기가 목록 이후에 비어 있습니다. 현재로서는 가시성이 항상 사실 인 모든 조건과 독립적입니다.

어디에서 문제가 발생하는지 알고 싶습니다. 대각선에 대한

+0

어댑터 xml을 게시 할 수 있습니까? 거기에 어댑터의 getView에서 겹치는 무언가가있다. – Pr38y

+0

어댑터에서는 텍스트 만 설정됩니다. 목록 셀의 xml에서 마지막 뷰가 그려지며 나머지 뷰는 텍스트 뷰입니다. – seema

+0

@seema 스크린 샷을 추가 할 수 있습니까? –

답변

2

사용자 정의보기는 다음과 같습니다

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

} 

그것은 나를 위해 일했습니다.