Android开发初体验

 Android开发初体验

目的

初步了解Android studio的用法,体验安卓开发中菜单动画(平移)。

技术——菜单动画

1.描述:鼠标单击菜单时,菜单展开

              鼠标再一次单击时,菜单回收,回到最初状态

2.移动 translationX、translationY •float translationX :表示在 X 轴上的平移距离,以当前控件为原点,向右为正方向,参数 translationX 表示移动的距离。 •float translationY :表示在 Y 轴上的平移距离,以当前控件为原点,向下为正方向,参数 translationY 表示移动的距离。例子:

ObjectAnimator animator = ObjectAnimator.ofFloat(tv, "translationX", 0, 200, -200,0); animator.setDuration(2000);

animator.start();

技术的使用与实现

1.定义每个菜单的初始位置在同一个点,当然最外层的的长和宽要大于里层的,里层的所有的长和宽一样

android:id="@+id/iv_g"
android:layout_width="60dp"
android:layout_height="60dp"
android:src="@mipmap/g"                     //b到g
    android:layout_centerHorizontal="true"
android:layout_marginTop="5dp"
/>

android:layout_width="70dp"
android:layout_height="70dp"
android:src="@mipmap/a"
android:layout_centerHorizontal="true"
android:onClick="imgClicked"/>


2.实现展开的功能

1.先用一个数组存放试图的ID号; 2.用一个数组保存ID所对应的视图

private int[] resID={R.id.iv_b,R.id.iv_c,R.id.iv_d,R.id.iv_e,R.id.iv_f,R.id.iv_g,R.id.iv_h}; private List imageViews=new ArrayList<>();

2.定于一个变量,用来记录按钮状态(如果是开,则关闭;如果是关,则展开)

 private boolean isOpen=false;

3.将id号所对应的图片视图读取出来,放在数组中

for(int i=0;i

int id =resID[i];

ImageView img =findViewById(id);

 imageViews.add(img); }

4.定义鼠标事件

public void imgClicked(View view) {

if(isOpen==true){

//应该关闭,收回

 close(); }else {

 //应该打开,展开 open();

 }

isOpen=!isOpen; }

private void open(){

for(int i =0;i

ImageView iv=imageViews.get(i);

ObjectAnimator oa = ObjectAnimator.ofFloat(iv,"translationY", 0f,(i+1)*120f);

oa.setDuration(1000);

oa.setInterpolator(new BounceInterpolator());

oa.start();


private void close(){

for(int i =0;imageViews.size();i++){

ImageView iv=imageViews.get(i);

 ObjectAnimator oa = ObjectAnimator.ofFloat(iv,"translationY", 0f,(i+1)*120f);

oa.setDuration(1000); 

oa.start();

}


5.效果图



你可能感兴趣的:(Android开发初体验)