ایجاد انیمیشن برای فیلدهای لیست ویو در اندروید

در این مقاله قصد داریم که زمانی که کاربر روی یکی از آیتم های لیست ویو کلیک کرد با کلیک کردن آن روی فیلد مورد نظر رنگ سطر مورد نظر تغییر کند و این رنگ با استفاده از انیمیشن تغییر نماید.

ایجاد انیمیشن برای فیلدهای لیست ویو در اندروید

ابتدا برای این کار باید کلاس مورد نظر را بنویسید:

import android.app.Activity;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.TransitionDrawable;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MainActivity extends Activity {

 ListView listview;
 String[] ListItems = new String[] {
 "ONE",
 "TWO",
 "THREE",
 "FOUR",
 "FIVE",
 "SIX",
 "SEVEN",
 "EIGHT",
 "NINE",
 "TEN"
 };
 ArrayAdapter<String> arrayadapter;
 
 ColorDrawable[] AnimationColors = {
 new ColorDrawable(Color.parseColor("#6bedfc")),
 new ColorDrawable(Color.parseColor("#c75cc1")),
 
 };
 
 ColorDrawable[] DefaultColors = {
 new ColorDrawable(Color.parseColor("#c75cc1")),
 new ColorDrawable(Color.parseColor("#01fee3")),
 
 };
 
 TransitionDrawable transitiondrawable1, transitiondrawable2;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 
 listview = (ListView)findViewById(R.id.listView1);
 
 arrayadapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_2, android.R.id.text1, ListItems);
 
 listview.setAdapter(arrayadapter); 
 
 
 listview.setOnItemClickListener(new OnItemClickListener()
 {

 @Override
 public void onItemClick(AdapterView<?> parent, View view, int position,
 long id) {
 // TODO Auto-generated method stub
 
 transitiondrawable1 = new TransitionDrawable(AnimationColors);
 
 view.setBackground(transitiondrawable1);
 
 transitiondrawable1.startTransition(2200); 
 
 transitiondrawable2 = new TransitionDrawable(DefaultColors);
 
 view.setBackground(transitiondrawable2);
 
 transitiondrawable2.startTransition(2200); 
 
 
 }
 });
 }
 }

ما از آرایه ی ColorDrawable[] برای تغییر رنگ های لیست ویو استفاده می کنیم

حالا برای قسمت 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="com.animateonlistview_android_examples.com.MainActivity"
 android:background="#01fee3" >

 <ListView
 android:id="@+id/listView1"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:layout_alignParentTop="true"
 android:layout_centerHorizontal="true"
 android:background="#01fee3" >
 </ListView>

</RelativeLayout>

خروجی به صورت زیر است:

فایل های ضمیمه