[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>
只增加了上图浅绿部分。

[Android] 开发第十天的更多相关文章
- 使用Visual Studio进行 Android开发的十大理由
[原文发表地址]Top 10 reasons to use Visual Studio for C++ Android Development! Visual Studio: C++跨平台的移动解决方 ...
- Android开发的十项注意
随着移动平台的发展及其应用的不断改善,质量成为决定成败的关键.用户要求他们安装的应用响应快.性能好,如果某个应用不能提供卓越的功能和稳定的用户体验,那注定会被很快卸载: 尽管现在Android智能手机 ...
- Android开发(十)——像素单位dp、px、pt、sp的比较
dp(dip): device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA.HVGA和QVGA 推荐使用这个,不依赖 ...
- Android开发(十八)——头部、中部、底部布局技巧
头部.中部.尾部布局涉及到布局内容自适应,总结两个技巧: 第一种相对布局: <?xml version="1.0" encoding="utf-8"?&g ...
- Android开发(十六)——Android listview onItemClick事件失效的原因
参考: Android listview onItemClick事件失效的原因.http://blog.csdn.net/wangchun8926/article/details/8793178
- Android开发(十四)——SimpleAdapter与自定义控件
ListView中可以使用SimpleAdapter进行数据与视图的绑定,但都是对已有的系统控件的绑定,如果自定义空间直接使用SimpleAdapter绑定,则会报错. 如,使用CircleImage ...
- Android开发(十九)——ViewFlipper中的onClick事件和onFling事件冲突
在onDown中设置this.flipper.setClickable(true); 然后在onFling方法中this.flipper.setClickable(false); ps: 其中setO ...
- Android开发(十五)——ListView中Items的间距margin
ListView中Items没有margin 参考:http://www.cnblogs.com/xitang/p/3677528.html
- Android开发(十二)——头部、中部、底部布局
参考: [1] http://www.thinksaas.cn/group/topic/82898/ [2] http://***/Article/12399 其实RadioGroup不好使,不能图片 ...
随机推荐
- CSU 1963 Feed the rabbit(斜率优化dp)
http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1963 题意:有m个坑,每只兔子会在ti时刻回到坑中,现在有n个人,每个人都可以从任意时间(&l ...
- hdu 4745 Two Rabbits 区间DP
http://acm.hdu.edu.cn/showproblem.php?pid=4745 题意: 有两只兔子Tom Jerry, 他们在一个用石头围城的环形的路上跳, Tom只能顺时针跳,Jerr ...
- postgres10.2时区研究
搭建两个虚拟环境,操作系统均是cents7. 环境A: 使用timedatectl命令查看时区为 Time zone: Asia/Shanghai (CST, +0800). 本地数据库时区(show ...
- $ocLazyLoad
博客:http://zhidao.baidu.com/link?url=1eODexxXPsl2gy4UsRnfIqPJnzFrzFk2JJad-cjWDiyCKkb4qxS8scvxoMRqM0Fw ...
- gitlab访问限制问题------Forbidden
解决方案: cd /etc/gitlab vim /gitlab.rb gitlab_rails['rack_attack_git_basic_auth'] = { 'enabled' => t ...
- C#皮肤之IrisSkin4.dll
1. 将IrisSkin4.dll动态文件导入当前项目引用中.具体操作为:解决方案资源管理器->当前项目->引用->右键->添加引用,找到IrisSkin4.dll文件,然后加 ...
- 【git】提交到github不显示贡献小绿点问题的解决
问题描述: 最近一直在用github来写博客,但是今天发现github上的contributions记录并没有我的提交记录. 经过一番百度和自行捣鼓发现了问题所在. 原因: 最近实习,公司给配电脑.原 ...
- 改变Vim保存文件路径
1. vim 有个cd命令.用来更改当前文件夹.:cd sth进入sth文件夹.这样新文件保存之后就在当前文件夹.不过如果你打开一个已经保存的文件后然后更改当前文件夹是不会改变保存路径的.你必须为:w ...
- hdu 3689 杭州 10 现场 J - Infinite monkey theorem 概率dp kmp 难度:1
J - Infinite monkey theorem Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d &am ...
- hdu5575
题解: 每一次最短的那块板合并 先装水到溢出 然后合并 代码: #include<cstdio> #include<cstring> #include<algorithm ...