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.
[最佳實踐]瞭解 Eolinker 如何助力遠程辦公
2.
katalon studio 安裝教程
3.
精通hibernate(harness hibernate oreilly)中的一個」錯誤「
4.
ECharts立體圓柱型
5.
零拷貝總結
6.
6 傳輸層
7.
Github協作圖想
8.
Cannot load 32-bit SWT libraries on 64-bit JVM
9.
IntelliJ IDEA 找其歷史版本
10.
Unity3D(二)遊戲對象及組件
本站公眾號
歡迎關注本站公眾號,獲取更多信息
相關文章
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純代碼編寫)
>>更多相關文章<<