当前位置:网站首页>“山东大学移动互联网开发技术教学网站建设”项目实训日志三
“山东大学移动互联网开发技术教学网站建设”项目实训日志三
2022-07-29 05:19:00 【BEER_7】
时间:
21春季学期第六周
个人工作内容:
完成指南针案例app
全部视觉稿的组件和配色导出
详细记录:
- 指南针案例app设计说明
- 目标用户:android开发入门阶段的学生。
- 需求说明:说明传感器的使用方法,动画使用简单教学
- 设计说明:用一个指针盘表示朝向北的指针,传感器获取偏离角度后使得指针盘旋转并标出偏差角度,接近北方后字体变红以强调方位正确性
要点说明
- 指南针页面

xml文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:gravity="center"
android:background="#211E1E">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="NORTH"
android:textColor="#FFFFFF"
android:textSize="50sp" />
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/compass3"
android:layout_marginTop="60dp"/>
<TextView
android:id="@+id/degree"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0°"
android:textColor="#FFFFFF"
android:textSize="50sp"
android:layout_marginTop="60dp"/>
</LinearLayout>
- 当接近北方时,角度指示会变红,在传感器监测方向改变的方法中判断度数即可实现

SensorListener内部类:
//通过getSystemService获得SensorManager实例对象
manager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
private final class SensorListener implements SensorEventListener {
private float predegree = 0;
//传感器监测方向改变
public void onSensorChanged(SensorEvent event) {
float degree = event.values[0];// 存放了方向值 90
动画,在上传感器监测方向改变的方法中写:
RotateAnimation animation = new RotateAnimation(predegree, -degree,
Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f);
//旋转过程持续时间
animation.setDuration(200);
//罗盘图片使用旋转动画
imageView.startAnimation(animation);
predegree = -degree;
后期工作规划:
- 下周完成摇摇闹钟案例App的开发和教学设计
边栏推荐
猜你喜欢

365 day challenge leetcode1000 question - day 036 binary tree pruning + subarray and sorted interval sum + delete the shortest subarray to order the remaining arrays

Installation steps and environment configuration of vs Code

Qframe class learning notes

How can Plato obtain premium income through elephant swap in a bear market?

量化开发必掌握的30个知识点【什么是分笔逐笔数据】?

一文读懂Move2Earn项目——MOVE

如何在加密市场熊市中生存?

完全去中心化的编程模式,不需要服务器,也不需要ip,就像一张漫无目的的网络、四处延伸

MOVE PROTOCOL全球健康宣言,将健康运动进行到底

Summary of knowledge points related to forms and forms
随机推荐
Cmu15-213 shell lab experiment record
Dao race track is booming. What are the advantages of m-dao?
From starfish OS' continued deflationary consumption of SFO, the value of SFO in the long run
Introduction to C language array to proficiency (array elaboration)
Niuke network programming problem - [wy22 Fibonacci series] and [replace spaces] detailed explanation
How to survive in the bear market of encryption market?
Win10 搭建MSYS2环境
微信小程序更改属性值-setData-双向绑定-model
Common prompt pop-up box of uniapp
Hcia-r & s self use notes (24) ACL
山寨币SHIB 在 ETH 鲸鱼的投资组合中拥有 5.486 亿美元的股份——交易者应提防……
Character type conversion
[C language series] - storage of deep anatomical data in memory (I) opening of summer vacation
win10+opencv3.2+vs2015配置
·Let's introduce ourselves to the way of programming·
马斯克推崇的柏拉图式元宇宙,PlatoFarm早已验证出答案
[C language series] - three methods to simulate the implementation of strlen library functions
DAO赛道异军突起,M-DAO的优势在哪里?
Crypto giants all in metauniverse, and platofarm may break through
[typescript] type reduction (including type protection) and type predicate in typescript