1、在ListView的intem中放一个TextView要实现跑马灯
style
<style name="listViewItemTvStyle">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">match_parent</item>
<item name="android:textColor">@android:color/white</item>
<item name="android:textSize">13sp</item>
<item name="android:singleLine">true</item>
<item name="android:gravity">left</item>
<item name="android:paddingLeft">50px</item>
<item name="android:paddingRight">10px</item>
<item name="android:ellipsize">marquee</item>
<item name="android:marqueeRepeatLimit">marquee_forever</item>
</style>
布局文件如下
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/listViewLlRootStyle"
android:id="@+id/ll_item_root"
>
<TextView
android:id="@+id/tv_list_item"
style="@style/carTypeListViewItemTvStyle"
/>
</LinearLayout>
2、在代码中要实现点击实现高亮效果
list.setOnItemClickListener(carTypeOnItemClickListener);//设置监听
3、适配器
public class ModelAdapter extends BaseAdapter {
private String[] dates;
private LayoutInflater mInflater;
public ModelAdapter(String[] dates,Context context){
this.dates = dates;
this.mInflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return dates.length>0?dates.length:0;
}
@Override
public Object getItem(int position) {
return dates[position];
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if(convertView == null){
holder = new ViewHolder();
convertView = mInflater.inflate(R.layout.list_item, null);
holder.tvTextView = (TextView) convertView.findViewById(R.id.tv_list_item);
holder.linearLayout = (LinearLayout) convertView.findViewById(R.id.ll_item_root);
holder.tvTextView.setSelected(true);//就是这里,特别重要,要不然没有效果
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
holder.tvTextView.setText(dates[position]);
if (position == selectItem) {
holder.linearLayout.setBackgroundResource(R.drawable.list_item_p);
}else{
holder.linearLayout.setBackgroundResource(R.drawable.list_item);
}
return convertView;
}
public void setSelectItem(int selectItem) {
this.selectItem = selectItem;
}
public int getSelectItem(){
return selectItem;
}
private int selectItem = -1;
public class ViewHolder{
TextView tvTextView;
LinearLayout linearLayout;
}
}