Android小游戏和简单认识

内容:

  • 程序的目录介绍


    草图.png
  • Activity的⽣生命周期
    Android界面大部分的控件都会提供很多方法
    这些方法只需要自己去重写 不需要自己主动调用
    什么是Activity 就是一个界面
    管理一个界面从创建到运行到结束的整个过程/生命周期
    配置界面 onCreate 重写的这个方法是系统调用的
    启动界面 start
    重新启动 restart
    唤醒界面 resume
    暂停界面 pause
    销毁界面 destory

  • 实现的顺序
    界面启动
    OnCreate
    OnStart
    OnResume

    点击home键 回到主界面
    onPause

    通过后台 重新运行这个程序
    onRestart
    onStart
    onResume

    使用返回键 返回到主界面
    onPause
    onDestory

  • xml的布局


    1.png
  • xml配置界面


    2.png

    3.png
  • 控件的添加
    a. 控件=一个视图=看得到的都是视图
    1.基础阶段 学习系统自带的控件 熟悉
    TextView EditText Button ImageView ListView RecycleView
    ScrollView ViewPager ProgressBar Switch
    2.高级阶段 :自定义
    1.在已有的控件基础上加上自己的功能 继承
    2.自己画
    b. 一个控件就是一个类的具体对象
    ImageView :
    属性:
    方法:
    c.使用Java代码来实现布局界面
    通过添加id号可以唯一标识一个控件 或者组件(容器)
    android:id="@+id/fl_main


  • 更改主题样式
    程序或者某个UI模块可以有己的样式styles
    可以在values.styles.xml里面自定义
    不需要ActionBar
    style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">


    4.png
  • 代码创建控件(不建议使用)
public void code(){
    //通过代码来布局界面
    //1.找一个容器 xxlayout
    FrameLayout container=new FrameLayout(this);
    //2.创建一个子视图
    //创建imageView显示图片
    ImageView backgroundImageView=new ImageView(this);
    //设置属性
    backgroundImageView.setBackgroundColor(Color.GREEN);
    //添加到容器里面
    container.addView(backgroundImageView,1400,1400);
    ///3.设置当前界面的内容视图为这个容器
    setContentView(container);
   }

具体实现

  • 创建控件


    5.png
  • MainActivity中配置界⾯面
//配置界面
        setContentView(R.layout.activity_main);
        //找到容器里面的图片视图控件
        //findViewById
         forground=findViewById(R.id.iv_forground);
  • 读取原始图片
//将需要操作的图片读取出来  Bitmap
        //BitmapFactory  用于管理位图
        //decodeResource   从工程的资源路径中生成一张位图
        //getResource   获取工程的资源
        //R.drawable.fr    访问资源路径下 drawable里面的一个文件
         orgBitmap= BitmapFactory.decodeResource(getResources(),R.drawable.fr);
  • 创建一个副本
//操作这张图片  用透明色去替换某一个位置的颜色
        //不能操作原图  只能cope一份
        //创建一个和原始图片相同环境的空位图
        copyBitmap=Bitmap.createBitmap(orgBitmap.getWidth(),orgBitmap.getHeight(),orgBitmap.getConfig());
  • 进行图片的操作
//创建一个Canvas  画布=现实中的画板
        canvas=new Canvas(copyBitmap);
        //创建一个画笔
        paint=new Paint();
        //创建一个矩阵
        Matrix matrix=new Matrix();
        //旋转图片
        //matrix.setRotate(90,240,400);
        //平移
        //matrix.setTranslate(50,0);
        //翻转 set只作用一次  post作用多次
        //matrix.setScale(-1f,1f);
        //matrix.postTranslate(orgBitmap.getWidth(),0);
        //画一幅图
        canvas.drawBitmap(orgBitmap,matrix,paint);
        //显示图片
        forground.setImageBitmap(copyBitmap);
  • 添加触摸的事件
//给前景图片添加touch事件
        //当有触摸事件发生  系统就会将这个事件接收并回调这个事件
        forground.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                //获取当前事件
                int action= motionEvent.getAction();
                //判断状态
                if (action==MotionEvent.ACTION_MOVE){
                    //获取触摸点的坐标
                    int x=(int) motionEvent.getX();
                    int y=(int) motionEvent.getY();
                    //替换x,y对应的像素
                    for (int i=-8; i <8; i++) {
                        for (int j = -8; j < 8; j++) {
                            copyBitmap.setPixel(x+i,y+j,Color.TRANSPARENT);
                        }
                    }
                    forground.setImageBitmap(copyBitmap);
                }
                return true;
            }
        });

总结:

在听得过程中跟着写了一遍然后自己下来稍微看了一下代码在之前的部分听着还是不算太难但是在进行后面的添加touch事件创建副本和进行图片操作那里还是有点困难主要是在自己来想的时候自己根本想不到还可以用一个副本来进行图片的那些操作。

你可能感兴趣的:(Android小游戏和简单认识)