JavaShuo
栏目
标签
Android入门学习_代码详解
时间 2019-11-18
标签
android
入门
学习
代码
详解
栏目
Android
繁體版
原文
原文链接
其实对咱们新手来讲,通常的看过几天代码都明白了什么意思,可是我感受要是让咱们说说的话,还真没有几我的能说的很明白,那么咱们今天就和你们分享一些基础不能在基础的东西了,但愿新手们要谦虚的看看,在这里我就多说两句,就是说新手的时候必定要好好的学习基础,可不能明白了就过去,那其实你根本没有明白,基础没有打好,那咱们就无法再往深了里面学。很少说了,我就直接上代码吧。代码中有注释。你们会看明白的。
java代码:
<?xml version="1.0" encoding="utf-8"?>
<!-- 声明xml的版本以及编码格式 -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<!-- 添加一个垂直的线性布局 -->
<wyf.ytl.MainView
android:id="@+id/mainView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
<!-- 向线性布局中添加一个自定义的View -->
</LinearLayout> 说明:该布局很是简单,只需将自定义的View添加到一个垂直的线性布局中便可。
开发主逻辑代码,即读取手机的姿态,而后改变小水泡的坐标。首先搭建Sample.java的代码框架,以下所示。
Java代码:package eoe.demo;
//声明所在包
import org.openintents.sensorsimulator.hardware.SensorManagerSimulator;
//引入相关类
import android.app.Activity;
//引入相关类
import android.hardware.SensorListener;
//引入相关类
import android.hardware.SensorManager;
//引入相关类
import android.os.Bundle;
//引入相关类
public class Sample extends Activity {
MainView mv;
//主View
int k = 45;
//灵敏度
private SensorManagerSimulator mySensorManager;
//SensorManager对象引用
//private SensorManager mySensorManager;
//SensorManager对象引用
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//设置当前的用户界面
mv = (MainView) findViewById(R.id.mainView);
//获取主View
//mySensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
//得到SensorManager
//调试时用
mySensorManager = SensorManagerSimulator.getSystemService(this, SENSOR_ SERVICE); mySensorManager.connectSimulator();
}
private SensorListener mySensorListener = new SensorListener(){
//监听器
@Override
public void onAccuracyChanged(int sensor, int accuracy) {
}
//重写onAccuracyChanged方法
@Override
public void onSensorChanged(int sensor, float[] values) {
//重写onSensorChanged方法
//此处省略的是接收手机姿态的数据并进行处理的代码,将在以后进行介绍
}
public boolean isContain(int x, int y){
//判断点是否在圆内
int tempx = (int) (x + mv.small.getWidth()/2.0);
//获得水泡tempx坐标
int tempy = (int) (y + mv.small.getWidth()/2.0);
//获得水泡tempy坐标
int ox = (int) (mv.big_X + mv.big.getWidth()/2.0);
//获得大圆的X坐标
int oy = (int) (mv.big_X + mv.big.getWidth()/2.0);
//获得大圆的Y坐标
if(Math.sqrt((tempx-ox)*(tempx-ox)+(tempy-oy)*(tempy-oy)) 36 >(mv.big.getWidth()/2.0-mv.small.getWidth()/2.0)){
return false;
//不在圆内
}
else {
return true;
//在圆内
}
}
};
@Override
protected void onResume() {
//重写的onResume方法
mySensorManager.registerListener(
//注册监听
mySensorListener,
//监听器SensorListener对象
SensorManager.SENSOR_ORIENTATION,
//传感器的类型为姿态
SensorManager.SENSOR_DELAY_UI //频度
);
super.onResume();
}
@Override
protected void onPause() {
//重写onPause方法
mySensorManager.unregisterListener(mySensorListener);
//取消注册监听器
super.onPause();
}
}
复制代码
相关文章
1.
Oracle入门学习详解
2.
Python 机器学习(Machine Learning)入门篇(sklearn), 代码详解
3.
hadoop入门经典:wordcount代码详解
4.
Android学习入门
5.
手写代码详解Android Hook入门demo
6.
机器学习(三):代码入门demo
7.
10行代码入门机器学习
8.
Android入门学习_代码经常使用布局
9.
zookeeper入门学习(二):原理详解
10.
Qt入门学习——Qt快速入门(vim纯代码编写)
更多相关文章...
•
Markdown 代码
-
Markdown 教程
•
Memcached入门教程
-
NoSQL教程
•
YAML 入门教程
•
Java Agent入门实战(二)-Instrumentation源码概述
相关标签/搜索
代码超详解
Android-代码破解
Go 入门学习
Go入门学习
ffmepg入门学习
ffmpeg入门学习
Android入门
学代码
详解
入门必学
Android
MyBatis教程
PHP教程
SQLite教程
学习路线
代码格式化
乱码
0
分享到微博
分享到微信
分享到QQ
每日一句
每一个你不满意的现在,都有一个你没有努力的曾经。
最新文章
1.
「插件」Runner更新Pro版,帮助设计师远离996
2.
错误 707 Could not load file or assembly ‘Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKe
3.
Jenkins 2018 报告速览,Kubernetes使用率跃升235%!
4.
TVI-Android技术篇之注解Annotation
5.
android studio启动项目
6.
Android的ADIL
7.
Android卡顿的检测及优化方法汇总(线下+线上)
8.
登录注册的业务逻辑流程梳理
9.
NDK(1)创建自己的C/C++文件
10.
小菜的系统框架界面设计-你的评估是我的决策
本站公众号
欢迎关注本站公众号,获取更多信息
相关文章
1.
Oracle入门学习详解
2.
Python 机器学习(Machine Learning)入门篇(sklearn), 代码详解
3.
hadoop入门经典:wordcount代码详解
4.
Android学习入门
5.
手写代码详解Android Hook入门demo
6.
机器学习(三):代码入门demo
7.
10行代码入门机器学习
8.
Android入门学习_代码经常使用布局
9.
zookeeper入门学习(二):原理详解
10.
Qt入门学习——Qt快速入门(vim纯代码编写)
>>更多相关文章<<