zoukankan      html  css  js  c++  java
  • [Android] 开发第十天

    这几天因为电脑的 USB口发生故障,一直没怎么玩 Android-Studio

    后来把电脑从  Win7 -> Win10 重装后,一部分 USB口 可以使用了,然后接着开发 Android

    接着上篇,照着书上做一个跟随手指的小球:(我使用的 Android-Studio 升级到了最新版本 3.0 Beta 1)

    在 MainActivity.java 同目录下新建一个 DrawView.java 类,代码如下:

    package com.oazzz.test7;
    
    import android.content.Context;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Paint;
    import android.util.AttributeSet;
    import android.view.MotionEvent;
    import android.view.View;
    
    public class DrawView extends View {
        public float currentX = 40;
        public float currentY = 50;
        // 定义 并创建画笔
        Paint p = new Paint();
    
        public DrawView(Context context) {
            super(context);
        }
    
        public DrawView(Context context, AttributeSet set) {
            super(context, set);
        }
    
        @Override
        public void onDraw(Canvas canvas) {
            super.onDraw(canvas);
            // 设置画笔的颜色
            p.setColor(Color.RED);
            // 绘制一个小圆(作为小球)
            canvas.drawCircle(currentX, currentY, 15, p);
        }
    
        // 为该组件的触碰事件重写事件处理方法
        @Override
        public boolean onTouchEvent(MotionEvent event){
            // 修改 currentX 、 currentY 两个属性
            currentX = event.getX();
            currentY = event.getY();
            // 通知当前组件重绘自己
            invalidate();
            // 返回 true 表明该方法已经处理该事件
            return true;
        }
    }

    接下来修改 MainActivity.java 内容为:

    package com.oazzz.test7;
    
    import android.os.Bundle;
    import android.support.constraint.ConstraintLayout;
    import android.support.v7.app.AppCompatActivity;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            // 获取布局文件中的 LinearLayout 容器
            ConstraintLayout root = (ConstraintLayout)findViewById(R.id.root);
            // 创建 DrawView 组件
            final DrawView draw = new DrawView(this);
            // 设置自定义组件的最大宽度、高度
            draw.setMinimumWidth(300);
            draw.setMinimumHeight(500);
            root.addView(draw);
        }
    }

    其中的 R.id.root 来自于 activity_main.xml 中:

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.oazzz.test7.MainActivity"
        android:id="@+id/root">
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hello World!"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    
    </android.support.constraint.ConstraintLayout>

    只增加了上图浅绿部分。


    重装 Win10 后,踩了很多坑,Android-Studio 是直接从另一台电脑上复制过来扔到 C:Program Filesandroid-studio 就开始使用的。
    不需要下载安装 jre 也没有设置系统属性中的环境变量。
    每次使用 Android-Studio 都会 Gradle Sync
    目前的配置是:
  • 相关阅读:
    详解Net Core Web Api项目与在NginX下发布
    一个C#开发者重温Java的心路历程
    C#使用Consul集群进行服务注册与发现
    让我们一起揭开算法的神秘面纱
    C#调用RabbitMQ实现消息队列
    C#调用OpenCV开发简易版美图工具
    我们是如何做go语言系统测试覆盖率收集的?
    高效测试框架推荐之Ginkgo
    性能测试必知必会
    如何保障Go语言基础代码质量?
  • 原文地址:https://www.cnblogs.com/z5337/p/7342537.html
Copyright © 2011-2022 走看看