一、目的
学习安卓开发的第一天老师带我们制作了一个简单稍微菜单列表就是让我们现先熟悉一下Android Studio的使用和体验一下安卓开发,带领我们走进真正的安卓开发。另外就是培养我们的逻辑思维,为以后的学习打好基础。
二、技术
1,先在Android Studio中新建一个空白项目,把准备好的图片素材拖到左边mipmap中;
2,把图片a先放到虚拟手机上,调整到合适的位置
3,再把图片b,c,d,e,f,g,h图片放到图a的下面,大小略比图a小点,这时图片上方会有阴影(由于后面的图层和最前面的图层a距手机顶部的距离一样)所以再把b-h向下调5dp,然后为了后面取图层方便再为每个视图编上ID号;
4,然后获取xml里面所有视图文件:先定义一个数组保存所有视图的ID号
再另一个用一个数组保存所有ID号对应的视图
5,将ID号对应图从对应视图读取出来 放到ImageViews里面
6,定义一个布尔变量isopen 用来记录按钮(图层a)的状态,初始状态为关闭(false)
7,然后判断按钮的状态是打开还是关闭,若是关闭状态点击按钮则调用打开菜单方法,若是打开状态点击按钮则调用关闭菜单方法;
三 技术的使用
1,图层a的处理 :
<ImageView
android:layout_width="70dp"
android:layout_height="70dp"
android:src="@mipmap/a"
android:layout_centerHorizontal="true"
/>
2,图层b-h的处理:
<ImageView
android:id="@+id/iv_b"
android:layout_width="60dp"
android:layout_height="60dp"
android:src="@mipmap/b"
android:layout_centerHorizontal="true"
android:layout_marginTop="5dp"
/>
3,数组:
private int[] resID ={R.id.iv_b,R.id.iv_c,R.id.iv_d,R.id.iv_e,R.id.iv_e,R.id.iv_f,R.id.iv_f,R.id.iv_g,R.id.iv_g,R.id.iv_h};
private List<ImageView> imageViews = new ArrayList<>();
4,把数组放到ImageView中:
for(int i=0;i<resID.length;i++){
int id = resID[i];
ImageView img = findViewByID(id);
imageViews.add(img);
}
5,判断按钮状态:
public void imgCilnked(View view){
//应该关闭 收回列表
close();
}else{
//应该打开 展开列表
open();
}
6,关闭打开菜单的方法:
private void close() {
for (int i = 0; i < imageViews.size(); i++) {
ImageView iv = imageViews.get(i);
ObjectAnimator oa = ObjectAnimator.ofFloat(iv, "translationY", (i + 1) * 100, 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)*100);
oa.setDuration(1000);
oa.setInterpolator(new BounceInterpolator());
oa.start();
}
四、实际使用
注意:图层a-h的操作是在.xml里面进行的,后面的代码都是在.java中写的。
数组和isopen定义在MainActivity类下