2013-04-17 2 views
1

나는 나이 피곤 ViewHolderDemo.javaListView에서 텍스트의 크기를 어떻게 바꿀 수 있습니까?

public class ViewHolderDemo extends ListActivity { 
    private static final String[] items = {"lorem", "ipsum", "dolor", "sit", "amet","consectetuer", "adipiscing", "elit"}; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     setListAdapter(new IconicAdapter()); 
    } 

    public void OnListItemClick(ListView parent, View v, int position, long id){ 
    } 

    class IconicAdapter extends ArrayAdapter<String> { 

     public IconicAdapter() { 
      super(ViewHolderDemo.this, R.layout.row, R.id.label, items); 
     } 

     public View getView(int position, View convertView, ViewGroup parent){ 
      View row = super.getView(position, convertView, parent); 
      ViewHolder holder = (ViewHolder)row.getTag(); 

      if(holder == null){   
       holder = new ViewHolder(row); 
       row.setTag(holder); 

      } 
      holder.icon.setImageResource(R.drawable.star); 
      return(row); 
     }  
    } 
} 

문제에 ViewHolder.java

public class ViewHolder { 
    ImageView icon = null; 

    ViewHolder(View base){ 
     this.icon = (ImageView)base.findViewById(R.id.pic); 
    } 
} 

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" > 

    <ListView 
    android:id     = "@android:id/list" 
    android:textSize   = "4sp" 
    android:layout_width  = "fill_parent" 
    android:layout_height  = "fill_parent" 
    android:drawSelectorOnTop = "false" /> 

</LinearLayout> 

에 안드로이드 2.3

에 대한 aplication을 쓰고 있어요 : 때 나는 android:textSize.xml으로 변경합니다. 텍스트 크기가 변하지 않습니다
이 버그는 android에 있습니다.
enter image description here
그래서 ListView에 존재하는 텍스트의 크기를 조정할 수 있습니까?

답변

2
android:textSize = "4sp" 

안드로이드 : TEXTSIZE하지 ListView를 들어, 텍스트 뷰 속성입니다.

앱 테마에서 textSize를 설정하여 기본 textSize를 재정의 할 수 있습니다.

  1. 설정은 코드에서 안드로이드와 자신의 행 레이아웃을 팽창
  2. 을 (setTextSize을 텍스트 뷰에 대한 참조를 가져 및 사용) : : TEXTSIZE = "4SP의"텍스트 뷰
  3. 을위한 중 하나에 더 좋은 방법이 될 것이다

왜 이것이 앱 테마에서 설정하는 것보다 낫습니까? textSize 속성은 TextView에서 확장되는 모든 위젯에서 공유되므로 그래서 Button이나 EditText와 같은 것은 그 크기를 가질 것입니다. 물론 그것이 원하는 효과가 아니라고 가정하십시오.

+0

+1 더 좋은 제안입니다. 나는 그가 listview에 대한 속성을 설정했다는 것을 놓쳤다. – Raghunandan

1

사용자 정의 행 XML 및 BaseAdapter를 사용하여 그렇게 할 수 있습니다. 더 쉬운 방법이 있든 없든 모르겠지만이 방법이 효과가 있다는 것을 알고 있습니다.

1
private static final String[] items = {"lorem", "ipsum", "dolor", "sit", "amet","consectetuer", "adipiscing", "elit"} 

나는 imageview와 textview로 맞춤 레이아웃을 부 풀린다고 가정합니다. 당신의 getView에서

()

SpannableString ss2= new SpannableString(items[position]); 
ss2.setSpan(new RelativeSizeSpan(2f), 0, ss2.length(), 0); //change the size 
viewHolder.tv.setText(ss2); //set spannable string to your text 
관련 문제