小图标Y轴排列收缩

       作为一个跨入Android 的新手,这个应该算作我的第一个小软件了。虽然是在老师的一步一步引导中完成的,可在完成它后,心中或多或少的涌现出一些成就感,话不多说,开始正题。

目的:完成多个图标在Y轴上的覆盖,与整体的收缩。

技术:Android studio软件的常规应用。

流程:1,打开Android studio ,创办一个新Project,在phone and Tablet界面选择basic activity。之后,自己选择 两个名字和储存位置,这里只需要强调语言要选java,Minimum ApI 等级尽量在高版本的基础上选择适用范围广的就行。进入界面后,在左上角(面板上第一行)选择Android>app>res>mipmap。将要用到的图片“拉”到这个位置。

            2 ,将第二行xmlns之前的代码改为RelativeLayout(注意前面的“<”不要丢),第三段TextView开头那一段去掉。(在第二段与</RelativeLayout>之间输入代码,用以调整并标记我们的图片的大小与位置)

            3 ,

    <ImageView    (相当于一个盛放图片的容器)

    android:id="@+id/iv_b"(为这个图片选择一个”代号“)

    android:layout_width="60dp"(这个图片的宽度)

    android:layout_height="60dp"(高度)

    android:src="@mipmap/b"(图片来源路径mipmap/b)

    android:layout_centerHorizontal="true"(水平居中,将Horizontal改为vertical后为垂直居中)

    android:layout_marginTop="2dp"/>(距离上边距距离)

(靠右显示:用 android:layout_marginLeft,;靠左显示:用android:layout_marginRight,意思 是距离右边框的距离。android:layout_marginTop: 距离上边android:layout_marginBottom: 距离下边框)(每个图片都需要这个代码,由于除了位置外大概相同,可以复制粘贴)

在需要”按“的图片最后添加android:onClick="imgClicked"这个代码(用Alt+Enter选中imgClicked,会跳到一个代码,在哪里进行编辑)。

4,

在public class MainActivityextends AppCompatActivity这个类的开头添加;

public int []resID = {R.id.iv_a,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};(iv为ImageView的缩写)(将代号“拿”过来,用一个数组来表示这些代号)

private ListimageViews =new ArrayList<>();(管理图片视图)

private  boolean isOpen =false;(布尔型)


for (int i =0;i (id号对应视图放到ImageViews里面)

int id =resID[i];

    ImageView img = findViewById(id);

    imageViews.add(img);

}


public void imgClicked(View view) {(对按钮内容进行定义)

if (isOpen ==true) {

close(); //关闭

        }else {

open();//打开

        }

isOpen=!isOpen;

    }

private void close(){

for(int i =0 ; i

ImageView iv =imageViews.get(i);

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

            oa.setDuration(1000);

            oa.start();

        }

}

private void open(){

for(int i =0 ; i

ImageView iv =imageViews.get(i);

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

            oa.setDuration(1000);

            oa.setInterpolator(new BounceInterpolator());

            oa.start();

        }

}

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容