2019-07-28 Day1 Android开发初体验

目的

今天,是正式感受Android开发的第一天。而今天课程的主要目的是感受Android开发的魅力和对Android开发产生基本的了解,为后面的学习打好基础。在生活中,我们无时无刻不在接触新事物,只要抓住了机会,调整好心态,在哪里都可以学习到有价值的东西,这就需要我们明确自己的学习目的。学习是为了什么,怎样才能学以致用,是每个人都需要思考的问题。而今天的初体验,就让我们开始明白Android开发是怎么一回事。

技术

  1. 导入图片资源到应用程序中
  2. 如何确定图片在视图里面的大小与位置
  3. 如何将背景设置颜色
  4. 如何将图片资源使用ID编号
  5. 利用顺序实现层级关系
  6. 如何添加点击试件
  7. 在Java中获取xml里面所有的图片视图
  8. 读取id号对应图片视图并将其放到ImageViews里面
  9. 定义一个变量来记录按钮的状态
  10. 判断点击时按钮是打开还是关闭
  11. 点击后改变按钮状态

如何使用技术

导入图片到应用程序中

确定好需要的图片资源,然后将其拖入drawable或者mipmap,选中其中一个后,会提示拷入相应目录。


导入图片.png

如何确定图片在视图里面的大小与位置

 <ImageView
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:src="@mipmap/h"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="5dp"
        />

如何设置背景颜色

<ImageView
        android:background="ff0000"
        />

如何将图片资源使用ID编号

<ImageView
        android:id="@+id/iv_h"
        android:src="@mipmap/h"
        />

利用顺序实现层级关系

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

 <ImageView
        android:id="@+id/iv_h"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:src="@mipmap/h"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="5dp"
        />

如何添加点击试件

android:onClick="imgClicked"

接着点击imgClicked,接着使用快捷键Alt+Enter以创造方式

在Java中获取xml里面所有的图片视图

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<ImageView> imageViews = new ArrayList<>();

读取id号对应图片视图并将其放到ImageViews里面

for(int i = 0;i < resID.length; i++){
            int id=resID[i];
            ImageView img = findViewById(id);
            imageViews.add(img);

定义一个变量来记录按钮的状态

 private boolean isOpen = false;

判断点击时按钮是打开还是关闭

利用if语句进行判断其状态

 if(isOpen == true) {
            close();
        }else{
            open();
        }

同时做两个动画,以open函数和close函数使视图达到我们想要的效果,即在y轴上移动,并且时间为一个定值

 private void close() {
        for (int i = 0;i < imageViews.size();i++){
            ImageView iv = imageViews.get(i);

            ObjectAnimator oa = ObjectAnimator.ofFloat(iv,"translationY",(i+1)*150f,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)*150f);
            oa.setDuration(1000);
            oa.setInterpolator(new BounceInterpolator());
            oa.start();
        }
    }

点击后改变按钮状态

public void imgClicked(View view) {
        if(isOpen == true) {
            close();
        }else{
            open();
        }

        isOpen = !isOpen;
    }

实际使用

在应用中,点击红色按钮,按钮展开,向下降落,时间为1秒并伴随弹跳效果,在点击一次红色按钮,按钮收起,时间同样为1秒


QQ图片20190728222206.png

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

推荐阅读更多精彩内容