自己在之前从来没有过像今天这样亲手进行操作,而且一次性写了这么多
1. 目的
了解和熟悉andriod studiode用法以及它的一些语法,在日后的学习过程中,清楚学习哪些发面的知识点,虽然只是其中的一部份,但是也能够为后面的学习打下心理基础
2. 技术
运用andriod studio软件以及模拟器,先将素材导入mipmap中,然后进行设置整个界面的颜色,然后将这些素材进行设置(包括它的大小和位置),通过对这些素材给予ID,然后用一个数组将这些素材id集合起来,用另一个数组来表示对应id的图片,创建表示点击按钮的函数和读取id号所表示的图片,判断按钮的状态。然后给这些素材添加动画。
3. 每个技术如何运用
· 将需素材导入mipmap中(将需素材拖入mipmap中)

·进行界面颜色设置

· 对素材进行设置大小和位置(其他素材类似)

· 对素材素材给予ID(其他素材类似)

· 然后用数组表示这些素材


· 创建表示点击按钮的函数读取id号所表示的图片,判断按钮的状态




4. 实际应用
· 素材的设置
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ff0"
/>
<ImageView
android:id="@+id/iv_b"
android:layout_width="70dp"
android:layout_height="70dp"
android:src="@mipmap/b"
android:layout_centerHorizontal="true"
android:layout_marginTop="12dp"
/>
<ImageView
android:id="@+id/iv_c"
android:layout_width="70dp"
android:layout_height="70dp"
android:src="@mipmap/c"
android:layout_centerHorizontal="true"
android:layout_marginTop="12dp"
/>
<ImageView
android:id="@+id/iv_d"
android:layout_width="70dp"
android:layout_height="70dp"
android:src="@mipmap/d"
android:layout_centerHorizontal="true"
android:layout_marginTop="12dp"
/>
<ImageView
android:id="@+id/iv_e"
android:layout_width="70dp"
android:layout_height="70dp"
android:src="@mipmap/e"
android:layout_centerHorizontal="true"
android:layout_marginTop="12dp"
/>
<ImageView
android:id="@+id/iv_f"
android:layout_width="70dp"
android:layout_height="70dp"
android:src="@mipmap/f"
android:layout_centerHorizontal="true"
android:layout_marginTop="12dp"
/>
<ImageView
android:id="@+id/iv_g"
android:layout_width="70dp"
android:layout_height="70dp"
android:src="@mipmap/g"
android:layout_centerHorizontal="true"
android:layout_marginTop="12dp" />
<ImageView
android:id="@+id/iv_h"
android:layout_width="70dp"
android:layout_height="70dp"
android:src="@mipmap/h"
android:layout_centerHorizontal="true"
android:layout_marginTop="12dp" />
<ImageView
android:id="@+id/iv_a"
android:layout_width="75dp"
android:layout_height="75dp"
android:src="@mipmap/a"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:onClick="imgClicked"
/>
</RelativeLayout>
· 用数组表示这些素材以及创建表示点击按钮的函数读取id号所表示的图片
public class MainActivity extends AppCompatActivity {
/**
* 1.获取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<>();
/**
* 定义一个变量 用来记录按钮的状态
* isopen
* @param savedInstanceState
*/
private boolean isOpen=false;
· 将id号对应的图片读取出来 放到ImageViews里面
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/**
* 将id号对应的图片读取出来 放到ImageViews里面
*/
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)200f,0f);
oa.setDuration(500);
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)*200f);
oa.setDuration(500);
oa.setInterpolator(new BounceInterpolator());
oa.start();
}
}
}