textview
テキストDでアニメーション化する必要があります。しかし、プログラムを実行するとtextview
、テキストAとtextview
テキストDの両方でアニメーション化されます。textview
with text Aがリストの最初textview
です。
public class CustomArrayAdapter extends ArrayAdapter<String> {
private Context context;
private int layoutResourceId;
private List<String> data = null;
public CustomArrayAdapter(Context cont, int textViewResourceId,
List<String> horaNames) {
super(cont, textViewResourceId, horaNames);
this.layoutResourceId = textViewResourceId;
this.context = cont;
this.data = horaNames;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
ItemHolder holder = null;
if (row == null) {
LayoutInflater inflater = LayoutInflater.from(context);
row = inflater.inflate(layoutResourceId, parent, false);
holder = new ItemHolder();
holder.itemTV = (TextView) row.findViewById(R.id.listItemTV);
row.setTag(holder);
} else {
holder = (ItemHolder) row.getTag();
}
// set list view background color
row.setBackgroundColor(Color.DKGRAY);
holder.itemTV.setText(data.get(position));
Animation textAnimation = null;
if (data.get(position).equals("A")) {
holder.itemTV.setTextColor(Color.CYAN);
} else if (data.get(position).equals("B")) {
holder.itemTV.setTextColor(Color.GREEN);
} else if (data.get(position).equals("C")) {
holder.itemTV.setTextColor(Color.MAGENTA);
} else if (data.get(position).equals("D")) {
holder.itemTV.setTextColor(Color.RED);
textAnimation = new AlphaAnimation(0.0f, 1.0f);
textAnimation.setDuration(800);
textAnimation.setStartOffset(20);
textAnimation.setRepeatMode(Animation.REVERSE);
textAnimation.setRepeatCount(Animation.INFINITE);
holder.itemTV.startAnimation(textAnimation);
} else if (data.get(position).equals("E")) {
holder.itemTV.setTextColor(Color.WHITE);
} else if (data.get(position).equals("F")) {
holder.itemTV.setTextColor(Color.YELLOW);
} else if (data.get(position).equals("G")) {
holder.itemTV.setTextColor(Color.BLUE);
}
textAnimation = null;
return row;
}
static class ItemHolder {
TextView itemTV;
}
どうすればこれを解決できますか? textview
テキストDのみでアニメーション化する必要があります。
更新しました
main_list_row.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="5dip" >
<TextView
android:id="@+id/listItemTV"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:textSize="20sp"
android:textStyle="bold" />
</RelativeLayout>
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<ListView
android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:divider="#b5b5b5"
android:dividerHeight="1dp" />
</RelativeLayout>