Android屬性動畫之第一重修鍊總結,android第一重

來源:互聯網
上載者:User

Android屬性動畫之第一重修鍊總結,android第一重

  經過這兩天對ObjectAnimator屬性動畫的學習,基本對Android提供的屬性動畫有了一定的認識,現在就為大家以一個類似扇形開啟的效果做總結。

  下面就讓我們用剛剛學到的屬性動畫效果,來實現上述的效果;首先我們需要準備8張小表徵圖,將他們放到res目錄下的drawable檔案中,下面就是布局檔案,布局檔案很簡單,就是把這8張小表徵圖使用ImageView引入到介面中,需要注意的就是把做為開關的表徵圖,放到最下面,下面就看一下具體的實現:

/** * 屬性動畫綜合小例子 * Created by Administrator on 2015/2/14. */public class ThreeActivity extends Activity implements View.OnClickListener{    private int[] image = {R.id.imageA, R.id.imageB, R.id.imageC, R.id.imageD, R.id.imageE, R.id.imageF, R.id.imageG, R.id.imageH};    private String[] str = {"開關","相機","音樂","地址","月亮","個人資訊","定位","簡訊"};    private List<ImageView> list = new ArrayList<ImageView>();    private Boolean flag = true;//表徵圖開啟、關閉控制    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_three);        init();    }    public void init(){        for(int i = 0; i<image.length; i++){            ImageView imageView = (ImageView)findViewById(image[i]);            imageView.setOnClickListener(this);            list.add(imageView);        }    }    @Override    public void onClick(View view) {        switch (view.getId()) {            case R.id.imageA:                if(flag) {                    startanim();//開啟                }else{                    closeanim();//收合                }                break;            case R.id.imageB:                Toast.makeText(this, str[1], Toast.LENGTH_SHORT).show();                break;            case R.id.imageC:                Toast.makeText(this, str[2], Toast.LENGTH_SHORT).show();                break;            case R.id.imageD:                Toast.makeText(this, str[3], Toast.LENGTH_SHORT).show();                break;            case R.id.imageE:                Toast.makeText(this, str[4], Toast.LENGTH_SHORT).show();                break;            case R.id.imageF:                Toast.makeText(this, str[5], Toast.LENGTH_SHORT).show();                break;            case R.id.imageG:                Toast.makeText(this, str[6], Toast.LENGTH_SHORT).show();                break;            case R.id.imageH:                Toast.makeText(this, str[7], Toast.LENGTH_SHORT).show();                break;            default:                break;        }    }
  //開啟隱藏的表徵圖 public void startanim(){ for(int i = list.size()-1, j = 0; i >= 0; i--,j++){ ObjectAnimator animator = ObjectAnimator.ofFloat(list.get(i), "translationY", 0F, i*80F); animator.setDuration(500);//期間 animator.setInterpolator(new BounceInterpolator());//自由落體效果 animator.setStartDelay(j * 100);//間隔時間 animator.start(); } flag = false; }  
  //關閉開啟的表徵圖 public void closeanim(){ for(int i = 0; i < list.size(); i++){ ObjectAnimator animator = ObjectAnimator.ofFloat(list.get(i), "translationY", i*80F, 0F); animator.setDuration(500); animator.setStartDelay(i * 100); animator.start(); } flag = true; }}

  對於代碼中的不易理解部分,我已進行了注釋,相信大家一看便可以理解。最後為大家附一張實習後的效果:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.