我是Android新手编程的新手,我正在努力解决以下问题。 我使用自定义ListView来显示商店名称及其徽标。 我想更改自定义字体的标准textview字体。
我用于普通文本视图的方法不起作用。 你能帮帮我吗?
以下代码是我的ListView适配器。
package com.mallspecials.shoppingmallspecialsau;
import android.content.Context;
import android.content.res.AssetManager;
import android.graphics.Color;
import android.graphics.Typeface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class ShowTheStoreAdapter extends BaseAdapter {
// Declare Variables
Context context;
String[] thestore;
int[] logo;
LayoutInflater inflater;
public ShowTheStoreAdapter(Context context, String[] thestore, int[] logo) {
this.context = context;
this.thestore = thestore;
this.logo = logo;
}
private AssetManager getAssets() {
// TODO Auto-generated method stub
return null;
}
@Override
public int getCount() {
return thestore.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
public View getView(int position, View convertView, ViewGroup parent) {
//Set Snell Roundhand Font for the StoreName
Typeface font = Typeface.createFromAsset(getAssets(), "Snell Roundhand Bold Script.ttf");
// Declare Variables
TextView StoreName;
ImageView imglogo;
inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View itemView = inflater.inflate(R.layout.listview_stores, parent, false);
//Set the StoreName Text
StoreName = (TextView) itemView.findViewById(R.id.thestore);
StoreName.setTextColor(Color.RED);
StoreName.setShadowLayer(3, -2, -5,(Color.YELLOW));
StoreName.setTypeface(font);
StoreName.setText(thestore[position]);
// Locate the ImageView in listview_stores.xml
imglogo = (ImageView) itemView.findViewById(R.id.storelogo);
// Capture position and set to the ImageView
imglogo.setImageResource(logo[position]);
return itemView;
}
}
以下是我的适配器View实现的代码。
list = (ListView) findViewById(R.id.listview);
adapter = new ShowTheStoreAdapter(this, thestore, storelogo);
list.setAdapter(adapter);
答案 0 :(得分:1)
在BaseAdapter的帮助下为ListView创建子视图。在该SubView中添加自定义textview。
答案 1 :(得分:0)
列表视图本身不负责绘制项目,它使用适配器来创建列表项。此适配器创建一个视图以在需要时显示列表项。要更改用于显示列表项的字体,您必须更改适配器以返回包含新字体的视图。这可以在Adapter.getView方法中完成。如果您当前正在使用标准的Adapter实现,则可能需要对其进行子类化(或完全替换它)。