设计一个菜单目录
一、目的:
- 熟悉Android studio的使用.
- 了解一些相关语法及其作用.
- 成功地完成菜单项目.
二、技术及其代码使用
- 获取所需要的图片.
android:src="@mipmap/c"
- 设置图像的位置.
android:layout_centerHorizontal="true"
- 设置图像的宽度和高度.
android:layout_width="70dp"
android:layout_height="70dp"
- 调整图片的与上部的距离.
android:layout_marginTop="5dp"
- 设置按钮.
android:onClick="imgClicked" Alt+Eenter
- 为每个图片取上id.
android:id="@+id/iv_a"
- 获取xml里面所有的图片视图
先用一个数组保存所有的视图的id号 (R.id.iv_b)
用一个数组保存所以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<ImageView> imageViews = new ArrayList<>();
private boolean isOpen = false;
- 将ID号对应的视图读取出来,放到ImageView里面
for (int i=0;i<resID.length;i++){
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<imageViews.size();i++){
ImageView iv =imageViews.get(i);
ObjectAnimator oa = ObjectAnimator.ofFloat(iv,"translationY",(i+1)*220f,0f);
oa.setDuration(1000);
oa.start();
}
}
private void open(){
for (int i=0;i<imageViews.size();i++){
ImageView iv =imageViews.get(i);
ObjectAnimator oa = ObjectAnimator.ofFloat(iv,"translationY",0f,(i+1)*220f);
oa.setDuration(1000);
oa.setInterpolator(new BounceInterpolator());
oa.start();}
三、实际使用

图片视图的设置.png

获取图像视图并对其处理编号.png

将应id提取出来,并放入img.png

设置关闭动画.png

设置打开动画.png

效果图1.png

效果图2.png