2011-03-30 5 views
0

나를 안드로이드 멍청이라고 생각해보십시오. 사용자 정의 ListView를 만들려고합니다.이 형식은 ('this'는 BlackBerry에 구현 된 사용자 정의 ListView이지만, Android에서 동일한 모양과 느낌을 만들고 싶습니다.)Android : 맞춤리스트 뷰 드로잉

' 현재했습니다 다음 안드로이드 코드와 XML을 마련하지만, 표준의 ListView의 모양이 변경되지 않습니다

코드 :

public class RoundedListView extends ListView 
{ 
    public RoundedListView(Context context) { 
     super(context); 
     // TODO Auto-generated constructor stub 
    } 

    public RoundedListView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     // TODO Auto-generated constructor stub 
    } 

    public RoundedListView(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
     // TODO Auto-generated constructor stub 
    } 

    public void onDraw(Canvas canvas) 
    {  
     Paint paint = new Paint(); 
     paint.setColor(Color.CYAN); 

     canvas.drawRect(10, 10, 10, 10, paint); 
     canvas.drawColor(Color.YELLOW); 

     super.onDraw(canvas); 
    } 
} 

는 XML (main.xml에) :

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <com.gravityzoo.android.containers.RoundedListView 
     android:layout_height="wrap_content" 
     android:id="@+id/listView1" 
     android:layout_width="match_parent"> 
    </com.gravityzoo.android.containers.RoundedListView> 
</LinearLayout> 

누구든지이 간단한 그리기 기능을 작동시키는 방법을 알고 있습니까? 미리 감사드립니다.

답변

2

Android는 Blackberry와 완전히 다릅니다.

위의 효과를 얻으려면 Android에서 ListView의 항목에 배경과 여백을 설정해야합니다. 일반적으로 사용자 정의 도면을 ListView, TextView 등과 같이보기 계층 구조의 "일반"멤버와 결합 할 필요가 없습니다.

종종 Blackberry 개발에서는 사용자 정의 너비와 높이를 제공하기 위해 프레임 워크 필드를 하위 클래스로 만듭니다. 안드로이드에서는 간단한 "구성"으로이 작업을 수행 할 수 있습니다. 즉, 구성 요소를 인스턴스화 한 다음 서브 클래 싱하지 않고 구성 요소에 속성을 설정하는 것입니다.

다른 중요한 점은 ListView이 모든 데이터가 동일한 일반 형식 또는 작은 형식 그룹을 따르는 균질 데이터에 사용되는 경향이 있다는 것입니다. 네 개의 항목 만 있고 각 항목의 특성이 다른 경우 평범한 이전 LinearLayout을 사용하면보기를 세로로 배치 할 수 있습니다. 이렇게하면 4 가지보기를 어댑터로 묶어 놓고 각 항목의 표시 방법을 최대한 제어 할 수있는 작업이 상당히 줄어 듭니다.