我正在为android 2.3编写应用程序
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>
ViewHolder.java
中的
public class ViewHolder {
ImageView icon = null;
ViewHolder(View base){
this.icon = (ImageView)base.findViewById(R.id.pic);
}
}
ViewHolderDemo.java
中的
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);
}
}
}
困扰我的问题是:当我在android:textSize
中更改.xml
时。文字大小不要改变答案 0 :(得分:2)
android:textSize = "4sp"
android:textSize是一个TextView属性,不适用于ListView。
您可以通过在应用主题中设置textSize来覆盖默认的textSize。 更好的方法是:
为什么这比在应用主题中设置更好? 由于textSize属性将由从TextView扩展的所有窗口小部件共享。所以像Button或EditText这样的东西也会有这样的大小(当然假设这不是理想的效果)。
答案 1 :(得分:1)
您可以使用自定义行XML和BaseAdapter执行此操作。不确定是否有更简单的方法,但我知道这有效。
答案 2 :(得分: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