帧动画+补间动画

MainActivity

package bw.com.bw_day02_animation;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;

import bw.com.bw_day02_animation.demo01.FreamAnimationActivity01;
import bw.com.bw_day02_animation.demo02.FrameAnimationActivity02;
import bw.com.bw_day02_animation.demo03.TweenActivity01;
import bw.com.bw_day02_animation.demo04.TweenActivity02;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void onClick(View view) {

        Intent intent = new Intent();

        switch (view.getId())
        {
            case R.id.but_01:
                intent.setClass(this,FreamAnimationActivity01.class);
                break;
            case R.id.but_02:
                intent.setClass(this, FrameAnimationActivity02.class);
                break;
            case R.id.but_03:
                intent.setClass(this, TweenActivity01.class);
                break;
            case R.id.but_04:
                intent.setClass(this, TweenActivity02.class);
                break;
        }
        startActivity(intent);
    }
}

 布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="bw.com.bw_day02_animation.MainActivity">

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="帧动画  属性创建方式"
        android:id="@+id/but_01"
        android:onClick="onClick"
         />

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="帧动画  代码创建方式"
        android:id="@+id/but_02"
        android:onClick="onClick"
        />


    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="补间画  属性创建方式"
        android:id="@+id/but_03"
        android:onClick="onClick"
        />


    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="补间画  代码创建方式"
        android:id="@+id/but_04"
        android:onClick="onClick"
        />

</LinearLayout>

 demo1

 FreamAnimationActivity01

package bw.com.bw_day02_animation.demo01;

import android.graphics.drawable.AnimationDrawable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;

import bw.com.bw_day02_animation.R;

/**
 * 资源文件创建帧动画
 * 1, 在res/drawable 文件中创建一个xml 个是的文件, 根节点为<animation-list></animation-list>
 * 2, 需要在根节点中, 添加每一帧图片
 *      <item  android:drawable="图片的id" android:duration="持续的时间 (毫秒)"/>
 * 3, 在布局页面中, ImageView 控件中引入 :  <ImageView  android:background = "帧动画资源的id"/>
 * 4, 在Activity 中, 得到动画资源管理器对象
 *      AnimationDrawable animationDrawable = (AnimationDrawable)mIv.getBackground();
 * 5, 调用      animationDrawable.start() ; 开启动画
 * 6, 调用      animationDrawable.stop(); 停止动画
 */
public class FreamAnimationActivity01 extends AppCompatActivity {

    //1, 得到动画管理器对象
    private AnimationDrawable animationDrawable;
    private ImageView mIv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_fream_animation01);

        mIv = (ImageView) findViewById(R.id.iv_id);
        //动画资源是通过页面中 android:background 属性设置, 所以只能通过ImageView 来获取
        animationDrawable = (AnimationDrawable) mIv.getBackground();
    }

    //程序一旦进入, 则开始播放动画 - --- 窗口焦点改变时调用即可  -- 扩展
    @Override
    public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);
        if (!animationDrawable.isRunning()) animationDrawable.start();
    }

    //开始播放动画
    public void start(View view) {
        // 判断:  如果动画没有播放, 则开始播放
        if (!animationDrawable.isRunning())
        {
            animationDrawable.start();
        }

    }

    //停止播放动画
    public void stop(View view) {

        animationDrawable.stop();
    }
}

 布局

activity_fream_animation01

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="bw.com.bw_day02_animation.demo01.FreamAnimationActivity01">

    <!--2, 为图片设置动画资源   给图片设置动画背景-->
    <ImageView
        android:layout_width="300dp"
        android:layout_height="300dp"
        android:id="@+id/iv_id"
        android:background="@drawable/fream_animation"
        android:layout_centerInParent="true"
        />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="开始动画"
        android:onClick="start"
        android:id="@+id/start_button"
        android:layout_below="@id/iv_id"
        />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="停止动画"
        android:onClick="stop"
        android:id="@+id/stop_button"
        android:layout_below="@id/iv_id"
        android:layout_alignParentRight="true"
        />

</RelativeLayout>

 demo02

 FrameAnimationActivity02

package bw.com.bw_day02_animation.demo02;

import android.graphics.drawable.AnimationDrawable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;

import bw.com.bw_day02_animation.R;

/**
 *  代码的方式创建帧动画
 *  1, 初始化动画管理器对象
 *      AnimationDrawable drawable = new AnimationDrawable();
 *  2, 向动画管理器中添加图片资源
 *      drawable.addFrame(Drawable类型的图片, 持续时间 毫秒);
 *  3, 设置图片是否执行一次
 *      drawable.setOneShot(false); // true 执行一次; false 执行多次
 *  4, 将动画资源, 设置到图片中
 *      mIv.setImageDrawable(drawable);
 *  5, 调用方法 start() 开启动画  --- drawable.isRunning()  判断动画是否正在执行
 *      drawable.start();
 *  6, 调用方法 stop() 停止动画
 *      drawable.stop();
 */
public class FrameAnimationActivity02 extends AppCompatActivity {

    private ImageView mIv;

    private AnimationDrawable animationDrawable;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_frame_animation02);

        mIv = (ImageView) findViewById(R.id.iv_id);

        //1, 初始化动画资源管理器对象
         animationDrawable = new AnimationDrawable();

        //2, 向动画资源中, 添加图片
        //Drawable类型的图片 ,  持续时间
        animationDrawable.addFrame(getResources().getDrawable(R.mipmap.loading0001),100);
        animationDrawable.addFrame(getResources().getDrawable(R.mipmap.loading0002),100);
        animationDrawable.addFrame(getResources().getDrawable(R.mipmap.loading0003),100);
        animationDrawable.addFrame(getResources().getDrawable(R.mipmap.loading0004),100);
        animationDrawable.addFrame(getResources().getDrawable(R.mipmap.loading0005),100);
        animationDrawable.addFrame(getResources().getDrawable(R.mipmap.loading0006),100);
        animationDrawable.addFrame(getResources().getDrawable(R.mipmap.loading0007),100);
        animationDrawable.addFrame(getResources().getDrawable(R.mipmap.loading0008),100);
        animationDrawable.addFrame(getResources().getDrawable(R.mipmap.loading0009),100);
        animationDrawable.addFrame(getResources().getDrawable(R.mipmap.loading0010),100);
        animationDrawable.addFrame(getResources().getDrawable(R.mipmap.loading0011),100);
        animationDrawable.addFrame(getResources().getDrawable(R.mipmap.loading0012),100);
        animationDrawable.addFrame(getResources().getDrawable(R.mipmap.loading0013),100);
        animationDrawable.addFrame(getResources().getDrawable(R.mipmap.loading0014),100);
        animationDrawable.addFrame(getResources().getDrawable(R.mipmap.loading0015),100);
        animationDrawable.addFrame(getResources().getDrawable(R.mipmap.loading0016),100);
        animationDrawable.addFrame(getResources().getDrawable(R.mipmap.loading0017),100);
        animationDrawable.addFrame(getResources().getDrawable(R.mipmap.loading0018),100);
        animationDrawable.addFrame(getResources().getDrawable(R.mipmap.loading0019),100);
        animationDrawable.addFrame(getResources().getDrawable(R.mipmap.loading0020),100);
        animationDrawable.addFrame(getResources().getDrawable(R.mipmap.loading0021),100);
        animationDrawable.addFrame(getResources().getDrawable(R.mipmap.loading0022),100);
        animationDrawable.addFrame(getResources().getDrawable(R.mipmap.loading0023),100);
        animationDrawable.addFrame(getResources().getDrawable(R.mipmap.loading0024),100);
        animationDrawable.addFrame(getResources().getDrawable(R.mipmap.loading0025),100);
        animationDrawable.addFrame(getResources().getDrawable(R.mipmap.loading0026),100);

        //3, 设置动画是否执行一次 -- true :  只执行一次;    false  执行多次
        animationDrawable.setOneShot(false);

        //4, 将动画资源设置到图片控件中
        mIv.setImageDrawable(animationDrawable);
    }

    //4, 开启动画
    public void start(View view) {
        if(!animationDrawable.isRunning())
        {
            animationDrawable.start();
        }
    }

    //5, 结束动画
    public void stop(View view) {
        animationDrawable.stop();
    }
}

 activity_frame_animation02

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="bw.com.bw_day02_animation.demo01.FreamAnimationActivity01">

    <ImageView
        android:layout_width="300dp"
        android:layout_height="300dp"
        android:id="@+id/iv_id"
        android:layout_centerInParent="true"
        />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="开始动画"
        android:onClick="start"
        android:id="@+id/start_button"
        android:layout_below="@id/iv_id"
        />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="停止动画"
        android:onClick="stop"
        android:id="@+id/stop_button"
        android:layout_below="@id/iv_id"
        android:layout_alignParentRight="true"
        />

</RelativeLayout>

 demo03

TweenActivity01

package bw.com.bw_day02_animation.demo03;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;

import bw.com.bw_day02_animation.R;

/**
 * 资源文件创建的补间动画
 * 1, res 的文件夹中 , 创建 anim文件夹
 * 2, 在res/anim 文件夹中, 创建一个xml 个是的动画, 根节点<alpha , scale, rotate,translate, set>
 * 3, 在Activity 中, 启动动画
 *     mIv.startAnimation(AnimationUtils.loadAnimation(上下文对象, 动画的资源id));
 */
public class TweenActivity01 extends AppCompatActivity {

    private ImageView mIv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tween01);

        mIv = (ImageView) findViewById(R.id.iv_id);
    }

    //点击按钮, 切换动画
    public void onClick(View view) {

        switch (view.getId())
        {
            case R.id.but_01:
                //渐变
                mIv.startAnimation(AnimationUtils.loadAnimation(this,R.anim.alpha_anim));
                break;
            case R.id.but_02:
                //缩放
                mIv.startAnimation(AnimationUtils.loadAnimation(this,R.anim.scale_anim));
                break;
            case R.id.but_03:
                //旋转
                mIv.startAnimation(AnimationUtils.loadAnimation(this,R.anim.rotate_anim));
                break;
            case R.id.but_04:
                //位移
                mIv.startAnimation(AnimationUtils.loadAnimation(this,R.anim.translate_anim));
                break;
            case R.id.but_05:
                //集合
                mIv.startAnimation(AnimationUtils.loadAnimation(this,R.anim.set_anim));
                break;

        }
    }
}

activity_tween01

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="bw.com.bw_day02_animation.demo03.TweenActivity01">


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <Button
            android:layout_width="0dp"
            android:layout_weight="1"
            android:text="渐变"
            android:id="@+id/but_01"
            android:onClick="onClick"
            android:layout_height="wrap_content" />


        <Button
            android:layout_width="0dp"
            android:layout_weight="1"
            android:text="缩放"
            android:id="@+id/but_02"
            android:onClick="onClick"
            android:layout_height="wrap_content" />



        <Button
            android:layout_width="0dp"
            android:layout_weight="1"
            android:text="旋转"
            android:id="@+id/but_03"
            android:onClick="onClick"
            android:layout_height="wrap_content" />



        <Button
            android:layout_width="0dp"
            android:layout_weight="1"
            android:text="位移"
            android:id="@+id/but_04"
            android:onClick="onClick"
            android:layout_height="wrap_content" />



        <Button
            android:layout_width="0dp"
            android:layout_weight="1"
            android:text="集合"
            android:id="@+id/but_05"
            android:onClick="onClick"
            android:layout_height="wrap_content" />

    </LinearLayout>

    <ImageView
        android:id="@+id/iv_id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@mipmap/pressed"/>
</LinearLayout>

  demo04

 TweenActivity02

package bw.com.bw_day02_animation.demo04;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.AnimationSet;
import android.view.animation.RotateAnimation;
import android.view.animation.ScaleAnimation;
import android.view.animation.TranslateAnimation;
import android.widget.ImageView;

import bw.com.bw_day02_animation.R;

/**
 * 代码创建补间动画
 *
 * 1, 声明每一种动画资源, 设置参数信息
 * 2, 设置持续时间
 * 3, 为控件启动动画
 *      mIv.startAnimation(animation);
 *
 */
public class TweenActivity02 extends AppCompatActivity {

    private ImageView mIv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tween02);

        mIv = (ImageView) findViewById(R.id.iv_id);
    }


    public void onClick(View view) {

        switch (view.getId())
        {
            case R.id.but_01:
                //渐变
                //开始的透明度 , 结束的透明度
                AlphaAnimation alphaAnimation = new AlphaAnimation(1.0f,0.0f);//创建动画资源
                alphaAnimation.setDuration(3000);  //设置持续时间
                alphaAnimation.setFillAfter(true);//保持结束时的状态
                mIv.startAnimation(alphaAnimation);//为图片启动动画

                break;

            case R.id.but_02:
                //缩放
                /**
                 * X轴的起始比例
                 * X轴的结束比例
                 * Y轴的起始比例
                 * Y轴的结束比例
                 * X轴中心点的参考
                 * X轴的中心位置
                 * Y轴中心点的参考
                 * Y轴的中心位置
                 */
               // ScaleAnimation scaleAnimation = new ScaleAnimation(1f,3f,1f,3f);//左上角为参考点
                ScaleAnimation scaleAnimation = new ScaleAnimation(1f,3f,1f,3f,
                        Animation.RELATIVE_TO_SELF,0.5f,
                        Animation.RELATIVE_TO_SELF,0.5f
                        );//以X和Y 的中心的为参考

                scaleAnimation.setDuration(3000);

                mIv.startAnimation(scaleAnimation);

                break;

            case R.id.but_03:
                //旋转
                RotateAnimation rotateAnimation = new RotateAnimation(0,720,
                        Animation.RELATIVE_TO_SELF,0.5f,
                        Animation.RELATIVE_TO_SELF,0.5f
                        );

                rotateAnimation.setDuration(3000);
                mIv.startAnimation(rotateAnimation);
                break;


            case R.id.but_04:
                //位移
                TranslateAnimation translateAnimation = new TranslateAnimation(0,800,0,800);
                translateAnimation.setDuration(3000);
                mIv.startAnimation(translateAnimation);
                break;

            case R.id.but_05:
                //集合
                //1, 实例化动画集合的对象
                //true  代表使用结合的插值器,  false  代表使用动画自己的插值器
                AnimationSet animationSet = new AnimationSet(false);

                //2, 创建每一个动画
                TranslateAnimation tAnimation = new TranslateAnimation(0,300,0,300);
                AlphaAnimation aAnimation = new AlphaAnimation(1.0f,0.0f);

                //3, 把每个动画, 添加到集合中
                animationSet.addAnimation(tAnimation);
                animationSet.addAnimation(aAnimation);

                //4, 为集合动画, 设置属性
                animationSet.setDuration(3000);
                animationSet.setFillAfter(true);

                //5, 为图片启动动画
                mIv.startAnimation(animationSet);

                break;
        }
    }
}

 布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="bw.com.bw_day02_animation.demo03.TweenActivity01">


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <Button
            android:layout_width="0dp"
            android:layout_weight="1"
            android:text="渐变"
            android:id="@+id/but_01"
            android:onClick="onClick"
            android:layout_height="wrap_content" />


        <Button
            android:layout_width="0dp"
            android:layout_weight="1"
            android:text="缩放"
            android:id="@+id/but_02"
            android:onClick="onClick"
            android:layout_height="wrap_content" />



        <Button
            android:layout_width="0dp"
            android:layout_weight="1"
            android:text="旋转"
            android:id="@+id/but_03"
            android:onClick="onClick"
            android:layout_height="wrap_content" />



        <Button
            android:layout_width="0dp"
            android:layout_weight="1"
            android:text="位移"
            android:id="@+id/but_04"
            android:onClick="onClick"
            android:layout_height="wrap_content" />



        <Button
            android:layout_width="0dp"
            android:layout_weight="1"
            android:text="集合"
            android:id="@+id/but_05"
            android:onClick="onClick"
            android:layout_height="wrap_content" />

    </LinearLayout>

    <ImageView
        android:id="@+id/iv_id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@mipmap/pressed"/>
</LinearLayout>

   test

   DbActivity

package bw.com.bw_day02_animation.test;

import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;

import org.xutils.DbManager;
import org.xutils.ex.DbException;
import org.xutils.view.annotation.ContentView;
import org.xutils.view.annotation.ViewInject;
import org.xutils.x;

import java.util.List;

import bw.com.bw_day02_animation.R;

@ContentView(value = R.layout.activity_db)
public class DbActivity extends AppCompatActivity {

    @ViewInject(value = R.id.lv)
    private ListView lv;
    private List<Person> data;
    private MyAdapter adapter;



    //1, 数据库的管理器对象
    private DbManager dbManager;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //引入注解
        x.view().inject(this);
        //初始化数据库的配置信息
        DbManager.DaoConfig daoConfig = new DbManager.DaoConfig();
        daoConfig.setDbName("test.db");
        daoConfig.setDbVersion(1);
        daoConfig.setDbUpgradeListener(new DbManager.DbUpgradeListener() {
            @Override
            public void onUpgrade(DbManager dbManager, int i, int i1) {

            }
        });

        dbManager = x.getDb(daoConfig);

        //2,创建表  -- 实体类

        //查询数据
       findDB();

        //为ListView 设置监听器
        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(final AdapterView<?> parent, View view, int position, long id) {
                AlertDialog.Builder builder = new AlertDialog.Builder(DbActivity.this);

                final int dbId = position + 1;

                builder.setItems(new String[]{"修改数据", "删除数据"}, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                        switch (which)
                        {
                            case 0:
                                //修改数据
                                try {

                                    Person person = dbManager.findById(Person.class,dbId);

                                    if(person!=null)
                                    {
                                        person.setName("张三");

                                        dbManager.update(person,"name");

                                        findDB();//查询数据
                                    }


                                } catch (DbException e) {
                                    e.printStackTrace();
                                }

                                break;

                            case 1:
                                //删除数据
                                try {
                                    Person person = dbManager.findById(Person.class,dbId);

                                    if(person!=null)
                                    {
                                        dbManager.delete(person);
                                        findDB();
                                    }


                                } catch (DbException e) {
                                    e.printStackTrace();
                                }

                                break;
                        }
                    }
                });

                builder.show();
            }
        });
    }

    private void findDB() {
        //4, 查询数据, 将数据库中的内容 , 显示在ListView中
        try {
            data =  dbManager.findAll(Person.class);

            if(data!=null)
            {
                adapter = new MyAdapter();

                lv.setAdapter(adapter);
            }


        } catch (DbException e) {
            e.printStackTrace();
        }
    }

    //3, 添加数据  -- 菜单添加 -- 系统菜单
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        getMenuInflater().inflate(R.menu.main,menu);

        return super.onCreateOptionsMenu(menu);
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        switch (item.getItemId())
        {
            case R.id.action_add:

                try {
                    dbManager.save(new Person("新数据","110"));

                    //查询数据
                    findDB();

                } catch (DbException e) {
                    e.printStackTrace();
                }

                break;
        }
        return super.onOptionsItemSelected(item);
    }

    class MyAdapter extends BaseAdapter
    {

        @Override
        public int getCount() {
            return data.size();
        }

        @Override
        public Object getItem(int position) {
            return data.get(position);
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {

            ViewHolder viewHolder ;
            if(convertView==null)
            {
                convertView = getLayoutInflater().inflate(R.layout.item_lv,parent,false);

                viewHolder = new ViewHolder();

                viewHolder.name_tv = (TextView) convertView.findViewById(R.id.name);
                viewHolder.phone_tv = (TextView) convertView.findViewById(R.id.phone);

                convertView.setTag(viewHolder);
            }else
            {
                viewHolder = (ViewHolder) convertView.getTag();
            }

            viewHolder.name_tv.setText(data.get(position).getName());
            viewHolder.phone_tv.setText(data.get(position).getPhone());

            return convertView;
        }

        class ViewHolder
        {
            TextView name_tv,phone_tv;
        }
    }
}

 MyApp

package bw.com.bw_day02_animation.test;

import android.app.Application;

import org.xutils.x;

/**
 * Created by Administrator on 2018/1/24.
 */

public class MyApp extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        //初始化xUtils
        x.Ext.init(this);
        x.Ext.setDebug(true);
    }
}

   Person

package bw.com.bw_day02_animation.test;

import org.xutils.db.annotation.Column;
import org.xutils.db.annotation.Table;

/**
 * Created by Administrator on 2018/1/24.
 */

@Table(name = "person")
public class Person {

    @Column(name = "_id",isId = true,autoGen = true)
    private int id;

    @Column(name = "name")
    private String name;

    @Column(name = "phone")
    private String phone;

    public Person() {
    }

    public Person(String name, String phone) {
        this.name = name;
        this.phone = phone;
    }

    @Override
    public String toString() {
        return "Person{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", phone='" + phone + '\'' +
                '}';
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }
}

 布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="bw.com.bw_day02_animation.test.DbActivity">

    <ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/lv"
        />
</LinearLayout>

  item_lv

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="20dp">

    <TextView
        android:id="@+id/name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="姓名"
        android:textSize="20sp"
        />

    <TextView
        android:id="@+id/phone"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/name"
        android:layout_alignParentRight="true"
        android:textSize="20sp"
        android:text="电话"
        android:layout_marginBottom="30dp"
        />


</RelativeLayout>

anim

 alpha_anim

<?xml version="1.0" encoding="utf-8"?>
<!--透明度的变化  渐变

    0.0  不可见,  1.0  可见

    android:fromAlpha=""    开始的透明度
    android:toAlpha=""      结束的透明度

    通用属性:
    android:duration=""     持续时间  毫秒
    android:fillAfter=""   是否保存结束时的状态
    android:repeatMode="reverse"  设置重复的模式
        reverse     反向执行
        restart     再次执行
    android:repeatCount = "2"   重复的次数   最终执行的次数 = 重复次数 + 执行 1

-->
<alpha xmlns:android="http://schemas.android.com/apk/res/android"

    android:fromAlpha="1.0"
    android:toAlpha="0.0"
    android:duration="3000"
    android:fillAfter="true"
    android:repeatMode="reverse"
    android:repeatCount = "2"
    >
</alpha>

 rotate_anim

<?xml version="1.0" encoding="utf-8"?>
<!--旋转
      android:fromDegrees=""  开始角度
    android:toDegrees=""       结束的角度
    android:pivotX=""           X轴的中心的
    android:pivotY=""           Y轴的中心的
-->
<rotate xmlns:android="http://schemas.android.com/apk/res/android"

    android:fromDegrees="0"
    android:toDegrees="720"
    android:pivotX="50%"
    android:pivotY="50%"

    android:duration="3000"
    >

</rotate>

 scale_anim

<?xml version="1.0" encoding="utf-8"?>

<!--缩放
    android:fromXScale=""       X轴起始比例
    android:toXScale=""         X轴的结束比例

    android:fromYScale=""       Y轴起始比例
    android:toYScale=""         Y轴的结束比例

     android:pivotX=""          X轴的中心的
    android:pivotY=""           Y轴的中心的
-->
<scale xmlns:android="http://schemas.android.com/apk/res/android"

    android:fromXScale="1"
    android:toXScale="3"
    android:fromYScale="1"
    android:toYScale="3"
    android:pivotX="50%"
    android:pivotY="50%"

    android:duration="3000"
    >

</scale>

set_anim

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true"
    >

    <alpha android:fromAlpha="1.0"
            android:toAlpha="0.0"
        android:duration = "3000"/>


    <translate
        android:fromXDelta="0"
        android:fromYDelta="0"
        android:toXDelta="800"
        android:toYDelta="800"
        android:duration = "3000"
        />

</set>

 translate_anim

<?xml version="1.0" encoding="utf-8"?>

<!--位移

    android:fromXDelta=""       X轴的起始位置
    android:toXDelta=""         X轴的结束位置

    android:fromYDelta=""       Y轴的起始位置
    android:toYDelta=""         Y轴的结束位置
    android:interpolator="@android:anim/accelerate_decelerate_interpolator"  插值器
    `                       @android:anim/bounce_interpolator  弹跳


-->
<translate xmlns:android="http://schemas.android.com/apk/res/android"

    android:fromXDelta="0"
    android:toXDelta="0"

    android:fromYDelta="0"
    android:toYDelta="1000"

    android:duration = "3000"
    android:interpolator="@android:anim/bounce_interpolator"
    >

</translate>

 menu

main

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:id="@+id/action_add"
        android:title="添加数据"
        />
</menu>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值