프로그램 실행 플래시 인터페이스 및 센서
주로 어떤 프로그램은 시작할 때 환영 인터페이스가 있는데 어떤 조작도 하지 않고 시간이 지나면 스스로 사라진다. 그리고android의 센서를 간략하게 소개하면 매우 유용하다. 예를 들어 수평계(체감게임) 나침반을 만들 수 있고 심지어 어떤 휴대전화는 온도와 대기압이 강하다는 것을 지원한다.
효과
어떤 사람이 묻는다. 너 이거 왜 아무것도 없어? 거짓말이야? =w=, 가상 기기가 센서를 지원하지 않아서 아무것도 없어. 내 핸드폰에 있는 캡처 한 장 보내줘.
여기서 주로 방향 센서에 대해 말하자면 다른 것은 아주 좋으면 시험해 볼 수 있다. 예를 들어 빛이 강하면 불을 켜고 불을 끄고 테스트할 수 있다. 방향 센서라면 우리는 핸드폰이 장방체라는 것을 알고 있다. 세 방향이 서로 수직으로 있는 면이 있는데 각각 이 세 면을 따라 회전하면 수치의 변화를 볼 수 있다. 마지막으로 북쪽을 가리킬 때 세 개의 값이 모두 0이 된다.
지식점 정리
1. 사실 플래시 스크린이란 타이머 타이머로 몇 초 후 점프를 규정한다
2. 센서가 휴대폰의 자체 기능을 수신하고 우리는 인터페이스를 사용하면 된다
3. Activity의 생명주기는 여기에 관련된다. 만약에 모르는 학생이 이 블로그를 볼 수 있다면 선인의 설명이 준비되면 더 이상 군말하지 않겠다.
http://blog.csdn.net/liuhe688/article/details/6733407
DEMO
글이 더럽고 길어지지 않도록 키코드만 보냈어요~
우선 인터페이스는 말할 것도 없고 특별한 점이 없다. 메인 인터페이스의activity가 어떻게 시간 회전을 실현하는지 살펴보자.
package com.example.administrator.lyfs;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Window;
import java.util.Timer;
import java.util.TimerTask;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
final Intent main = new Intent(this,MainChoice.class);
Timer timer = new Timer();
TimerTask timertask = new TimerTask() {
@Override
public void run() {
startActivity(main);
MainActivity.this.finish();
}
};
timer.schedule(timertask,1000*3);
}
}
timer를 사용하여 이 기능을 실현하는 것입니다. 코드는 간단하고 고급스러워 보입니다~
두 번째 인터페이스는 단추가 하나밖에 없어서 세 번째 인터페이스로 넘어갑니다. 두 번째 인터페이스는 앞으로 다른 것을 해야 하기 때문입니다.
세 번째 인터페이스의 자바 코드는 다음과 같다.
package com.example.administrator.lyfs;
import android.app.Activity;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.TextView;
/**
* Created by Administrator on 2015/7/18.
*/
public class SensorTest extends Activity implements SensorEventListener{
private SensorManager mSensorManger;
TextView firstOne;
TextView firstTwo;
TextView firstThree;
TextView secondOne;
TextView secondTwo;
TextView secondThree;
TextView ThirdOne;
TextView ForthOne;
TextView FifthOne;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activirty_sensor_test);
firstOne = (TextView)findViewById(R.id.first_first);
firstTwo = (TextView)findViewById(R.id.first_second);
firstThree = (TextView)findViewById(R.id.first_third);
secondOne = (TextView)findViewById(R.id.second_first);
secondTwo = (TextView)findViewById(R.id.second_second);
secondThree = (TextView)findViewById(R.id.second_third);
ThirdOne = (TextView)findViewById(R.id.third_first);
ForthOne = (TextView)findViewById(R.id.forth_first);
FifthOne = (TextView)findViewById(R.id.fifth_first);
mSensorManger = (SensorManager)getSystemService(SENSOR_SERVICE);
}
@Override
protected void onResume()
{
super.onResume();
mSensorManger.registerListener(this,
mSensorManger.getDefaultSensor(Sensor.TYPE_ORIENTATION),
SensorManager.SENSOR_DELAY_GAME);
mSensorManger.registerListener(this,
mSensorManger.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD),
SensorManager.SENSOR_DELAY_GAME);
mSensorManger.registerListener(this,
mSensorManger.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE),
SensorManager.SENSOR_DELAY_GAME);
mSensorManger.registerListener(this,
mSensorManger.getDefaultSensor(Sensor.TYPE_LIGHT),
SensorManager.SENSOR_DELAY_GAME);
mSensorManger.registerListener(this,
mSensorManger.getDefaultSensor(Sensor.TYPE_PRESSURE),
SensorManager.SENSOR_DELAY_GAME);
}
@Override
protected void onStop()
{
mSensorManger.unregisterListener(this);
super.onStop();
}
@Override
protected void onPause()
{
mSensorManger.unregisterListener(this);
super.onPause();
}
@Override
public void onAccuracyChanged(Sensor sensor,int accuracy)
{
}
@Override
public void onSensorChanged(SensorEvent event)
{
float[] values = event.values;
int senseorType = event.sensor.getType();
switch (senseorType)
{
case Sensor.TYPE_ORIENTATION:
firstOne.setText(""+values[0]);
firstTwo.setText(""+values[1]);
firstThree.setText(""+values[2]);
break;
case Sensor.TYPE_MAGNETIC_FIELD:
secondOne.setText(""+values[0]);
secondTwo.setText(""+values[1]);
secondThree.setText(""+values[2]);
break;
case Sensor.TYPE_AMBIENT_TEMPERATURE:
ThirdOne.setText(""+values[0]);
break;
case Sensor.TYPE_LIGHT:
ForthOne.setText(""+values[0]);
break;
case Sensor.TYPE_PRESSURE:
FifthOne.setText(""+values[0]);
break;
}
}
}
우리는 activity를 통해 Sensor Event Listener 인터페이스를 실현하는데 이 인터페이스는 두 가지 방법을 다시 불러와야 한다
1. public void on Accuracy Changed(Sensor sensor, int accuracy) 정밀도가 변할 때 이 함수를 호출합니다.
2. public void onSensorChanged(SensorEvent event) 센서가 수치 변화를 감지할 때 호출
전반적으로 저희가 Activity에서 이 몇 가지를 했어요.
0. SensorEventListener 인터페이스 구현
1. 레이아웃 파일에 있는 TextView를 가져와 수치를 표시합니다
2. 센서를 관리하기 위해sensorManager가 필요합니다
3. onResume에 센서 등록
4. onPause와 onStop에서 센서를 로그아웃(자원을 절약하기 위해)
5.onSensorChanged에서 이벤트(event)를 통해 관련 데이터(value)를 획득한 후 센서 종류를 통해 해당하는 디스플레이 수치를 확정
감상
이것이 바로 휴대전화 센서의 기능이다. 일반적인 휴대전화에는 온도와 압력 센서가 없을 수도 있고, 모두 11개의 센서가 있다
1.가속도 센서 Sensor.TYPE_ACCELEROMETER:
2. 자기장 센서 Sensor.TYPE_MAGNETIC_FIELD:#
3. 팽이 감지기 Sensor.TYPE_GYROSCOPE:
4. 광선 센서 Sensor.TYPE_LIGHT:#
5.거리 감지기 Sensor.TYPE_PROXIMITY:
6. 중력 센서 Sensor.TYPE_GRAVITY:
7. 선형 가속 센서 Sensor.TYPE_LINEAR_ACCELERATION:
8. 회전 벡터 센서 Sensor.TYPE_ROTATION_VECTOR:
9. 방향 센서: Sensor.TYPE_ORIENTATION:#
10.온도 센서 Sensor.TYPE_TEMPERATURE:#
11. 압력 센서, Sensor.TYPE_PRESSURE#
#을 그린 것은 우리가 사용한 것이지만 용법은 대동소이하다. 여러분은 한번 해 보셔도 됩니다. 이런 물리적 사건들이 매우 유능하다는 것을 알게 되면 앞으로도 다른 센서로 뭔가를 만들 것이니 기대해 주십시오~
매일 한마디
진정한 사랑은 일시적인 호감이 아니라 결과가 없다는 것을 뻔히 알면서도 버티고 싶은 충동이다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Gravio LED 매트릭스를 사용하여 CO2를 간판으로 시각화Gravio에서 CO2를 가시화하는 시리즈 제5탄입니다. 이번에는 조금 평소와 분위기가 다릅니다. 드디어 Gravio LED 매트릭스의 출하 개시! 그것을 기념하여 LED 매트릭스를 사용하여 시각화하고 싶습니다. 과...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.