ListView的LayoutAnimation,listSelector滑动效果和一些属性

ListView的一些属性,xml设置:

	   	<LinearLayout 
	   	   	android:layout_width="fill_parent"
			android:layout_height="fill_parent"
			android:layout_gravity="center_vertical"
			android:layout_marginTop="90dip" >
	    <RelativeLayout 
	        android:id="@+id/tt_list_content"
	       	android:layout_width="wrap_content"
			android:layout_height="wrap_content"
			android:layout_gravity="center_horizontal"	>

    	    <ImageView android:layout_width="0dp"                        //这个ImageView就是listview的自定义listSelector
    	        android:layout_height="0dp"
    	        android:id="@+id/list_bg"
    	        android:background="@drawable/list_selector"/>
	    
		    <ListView 
		    	android:id="@+id/tt_list"
		        android:layout_width="fill_parent"
		    	android:layout_height="fill_parent"
	        	android:divider="@android:color/transparent"	         	
		    	android:scrollbars="none" 
        		android:layoutAnimation="@anim/animation"   //listview进入Activity的动画效果xml设置方式
		    	android:cacheColorHint="@color/transparent" //下面三行是去掉listView内容上滑和下滑出现的重叠黑线
        		android:fadingEdge="none"
        		android:fadingEdgeLength="0dp"  />		    	
		    	 
	    </RelativeLayout> 
	</LinearLayout>
animation.xml文件:

<?xml version="1.0" encoding="utf-8"?>  
<layoutAnimation  
    xmlns:android="http://schemas.android.com/apk/res/android"  
    android:delay="0.2"  
    android:animationOrder="normal"  
    android:animation="@anim/list_item1"  />  //这里是放置了动画效果xml文件


list_item1.xml动画效果文件,这里只有透明度的改变,listview进入Activity时是由上倒下逐个显示:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
   android:interpolator="@android:anim/accelerate_interpolator"
   android:shareInterpolator="true">
   <alpha
      android:fromAlpha="0.0"
      android:toAlpha="1.0"
      android:duration="500"/>
</set>

下面看java代码的设置:

listbgImage=(ImageView) findViewById(R.id.list_bg);
tt_list.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
	@Override
	public void onItemSelected(AdapterView<?> parent, final View view,int position, long id) {
	itemPosition = position;	 
        
        //Runnable里面是设置选中项放大和字体设置成白色,没有选中的是灰色
 handler.postDelayed(new Runnable() {
     @Overridepublic void run() {
         if(list_focuse!=null){ 
            list_focuse.setTextColor(getResources().getColor(R.color.gray)); 
            list_focuse.startAnimation(AnimationUtils.loadAnimation(WappushBindingActivity.this, R.anim.list_item_narrowed));
         }
         final TextView t=(TextView) view.findViewById(R.id.name); 
         t.startAnimation(AnimationUtils.loadAnimation(WappushBindingActivity.this, R.anim.list_item_blowup)); 
         t.setTextColor(Color.WHITE); 
         ist_focuse=t; 
        }}, 200);
  //下面的if和else是设置自定义listSelector的滑动效果
      if(firstFlag){
         RelativeLayout.LayoutParams laypp=(RelativeLayout.LayoutParams) listbgImage.getLayoutParams();
         laypp.width=view.getWidth();laypp.height=view.getHeight();
         listbgImage.setLayoutParams(laypp);
         listbgImage.setX(view.getX());
         listbgImage.setY(view.getY());
      }else{
            listbgImage.setX(0);
            listbgImage.setY(0);
            Animation ani=new TranslateAnimation(previousX, view.getX(), previousY, view.getY());
            ani.setDuration(300);
            ani.setInterpolator(new AccelerateInterpolator());
            ani.setFillAfter(true);
            listbgImage.startAnimation(ani);
       }
           firstFlag=false;
           previousX=view.getX();
            previousY=view.getY();
     }
      @Overridepublic
      void onNothingSelected(AdapterView<?> parent) {
         // TODO Auto-generated method stub 
       }
      });
  }

 代码动态设置listview进入activity的动画效果: 
 

              private LayoutAnimationController animationController;
		animationController = new LayoutAnimationController(
				AnimationUtils.loadAnimation(WappushBindingActivity.this, R.anim.list_item));
		animationController.setOrder(LayoutAnimationController.ORDER_NORMAL);
		animationController.setDelay((float) 0.2);
		adapter = new ListAdapter(notseenlist);
		tt_list.setAdapter(adapter);                
                 //listview设置setAdapter的时候启动动画效果
		tt_list.setLayoutAnimation(animationController); 

















你可能感兴趣的:(ListView的LayoutAnimation,listSelector滑动效果和一些属性)