當前位置:首頁 » 安卓系統 » android監聽屏幕

android監聽屏幕

發布時間: 2022-07-15 11:27:24

㈠ Android如何建立一個後台監聽的Service來得到屏幕的點擊事件

是監聽自己的程序退出狀態
退出的時候毀掉用ondestory()。
在這個方法里弄個標志位,servirce就不斷判斷這個標志位。
標志位改變了,說明退出了。

㈡ android代碼,怎麼監控到屏幕亮度的變化

android的屏幕亮度變化時不會發送廣播,而是通過Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, value);設置的,其中的參數value是0-255之間的整型值,如果想獲取到當前屏幕的亮度的話,可以通過int currentValue=Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS);當然獲取到的值也是0-255之間的數,如果你想獲取到屏幕亮度的變化可以在Settings.System.putInt()方法中找到Settings.System.SCREEN_BRIGHTNESS_MODE對應的設置語句,然後發送一個廣播出去。

㈢ android GestureDetector監聽屏幕事件後 子view 的onTouch 無法觸發

onFling中如果你確定了左滑或者右滑你才攔截返回true,否則你應該不攔截,返回false,而不是所有的都返回true。

㈣ android 監聽屏幕是否被觸碰過

在第一個程序中注冊一個廣播接收器.BroadcastReceiver,指定接受的事件為A.
然後在第二個程序中捕獲OnTouch事件,點擊屏幕時,發送指定的廣播A,android的廣播系統所有程序都可以收到.
這樣就實現了你想要的功能.

㈤ android如何實現屏幕指定區域監聽手勢劃動事件

有個小技巧,就是用linearLayout.左邊一個,右邊一個。分別監聽兩個linearLayout即使左右監聽。而且不用擔心左邊偏移等問題。希望能幫到你。

㈥ android怎麼監聽手指抬起屏幕的事件

一般情況下,你在MotionEvent.ACTION_UP或者MotionEvent.ACTION_POINTER_UP等UP事件的回調中處理即可,因為手指在屏幕上如果按著即使不動的情況下,其實Action_move仍在回調,就是用戶比較難模擬出來那種完全手指按著屏幕一個像素點也沒有動的情況。
或者你不想在UP事件中處理,那麼就在Move中檢測單位事件內移動的具體,比如100ms內如果用戶手指移動距離小於你自己定義的閥值的話,可以認為用戶沒有移動手指。
寫了半天才發現你問的不是這個問題。
你的問題可以通過先計算你將要滑動屏幕到的最終位置,然後通過判斷你現在已經滑動到的位置,如果兩個位置間的距離小於某個閥值比如一像素的話,那麼就可以看做屏幕滑動停止了。

可以參考一下launcher中對屏幕滑動結束的處理邏輯。

㈦ android 如何監聽屏幕當前是否全屏

可以在屏幕的Activity加監聽屏幕屬性改變,發生改變則檢查當前是否全屏狀態。
是全屏狀態發送,全屏的廣播消息,到監聽應用觸發操作。
@Override
public void onWindowAttributesChanged(LayoutParams params) {
// TODO Auto-generated method stub
super.onWindowAttributesChanged(params);
Log.e(TAG,"onWindowAttributesChanged()"+getWindow().getAttributes().flags);
if (WindowManager.LayoutParams.FLAG_FULLSCREEN == getWindow().getAttributes().flags) {
Log.e(TAG,"onWindowAttributesChanged() FLAG_FULLSCREEN");
}
}
(注意該判斷在屏幕切換橫豎屏是也會觸發,需要根據實際情況過濾橫豎屏切換的情況。)

㈧ 在android中的SurfaceView里添加屏幕監聽的問題

額,一定是剛開始View沒有得到焦點……
View初始化的時候記得用setFocus方法哦,大概是這個名字……

㈨ android能不能給坐標加監聽。實現點擊屏幕的一點,然後在那一點出現一個圖片。

1、你可以放一個按鈕,將他的背景設置成透明的。
2、OnTouchListener監聽屏幕點擊事件,判斷點擊坐標。

㈩ 如何通過GestureDetector實現屏幕事件監聽

內容如題:
1.SlideExample.java文件
package com.example;
import android.app.Activity;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.ViewGroup;
public class SlideExample extends Activity {
public ViewGroup container1, container2;
private GestureDetector gestureDetector;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 監聽屏幕動作事件
SampleGuest gestureListener = new SampleGuest(this);
gestureDetector = new GestureDetector(gestureListener);
container1 = (ViewGroup) findViewById(R.id.container1);
container2 = (ViewGroup) findViewById(R.id.container2);
}
// called automatically, any screen action will Triggered it
public boolean onTouchEvent(MotionEvent event) {
if (gestureDetector.onTouchEvent(event))
return true;
else
return false;
}
}
2.SampleGuest.java文件
package com.example;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.GestureDetector.OnGestureListener;
import android.view.animation.AnimationUtils;
public class SampleGuest implements OnGestureListener {
SlideExample se;
private static final int SWIPE_MAX_OFF_PATH = 100;
private static final int SWIPE_MIN_DISTANCE = 100;
private static final int SWIPE_THRESHOLD_VELOCITY = 100;
public SampleGuest(SlideExample se) {
this.se = se;
}
// 用戶輕觸觸摸屏,由1個MotionEvent ACTION_DOWN觸發
public boolean onDown(MotionEvent e) {
Log.d("TAG", "[onDown]");
return true;
}
// 用戶按下觸摸屏、快速移動後松開,由1個MotionEvent ACTION_DOWN,
// 多個ACTION_MOVE, 1個ACTION_UP觸發
// e1:第1個ACTION_DOWN MotionEvent
// e2:最後一個ACTION_MOVE MotionEvent
// velocityX:X軸上的移動速度,像素/秒
// velocityY:Y軸上的移動速度,像素/秒
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)
return false;
if ((e1.getX() - e2.getX()) > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
se.container1.setAnimation(AnimationUtils.loadAnimation(se,
R.anim.push_left_out));
se.container2.setVisibility(View.VISIBLE);
se.container2.setAnimation(AnimationUtils.loadAnimation(se,
R.anim.push_right_in));
se.container1.setVisibility(View.GONE);
} else if ((e2.getX() - e1.getX()) > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
se.container1.setVisibility(View.VISIBLE);
se.container1.setAnimation(AnimationUtils.loadAnimation(se,
R.anim.push_left_in));
se.container2.setAnimation(AnimationUtils.loadAnimation(se,
R.anim.push_right_out));
se.container2.setVisibility(View.GONE);
}
return true;
}
// 用戶長按觸摸屏,由多個MotionEvent ACTION_DOWN觸發
public void onLongPress(MotionEvent e) {
Log.d("TAG", "[onLongPress]");
}
// 用戶按下觸摸屏,並拖動,由1個MotionEvent ACTION_DOWN, 多個ACTION_MOVE觸發
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) {
Log.d("TAG", "[onScroll]");
return true;
}
// 用戶輕觸觸摸屏,尚未松開或拖動,由一個1個MotionEvent ACTION_DOWN觸發
// 注意和onDown()的區別,強調的是沒有松開或者拖動的狀態
public void onShowPress(MotionEvent e) {
Log.d("TAG", "[onShowPress]");
}
// 用戶(輕觸觸摸屏後)松開,由一個1個MotionEvent ACTION_UP觸發
public boolean onSingleTapUp(MotionEvent e) {
Log.d("TAG", "[onSingleTapUp]");
return true;
}
}
3.main.xml文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:id="@+id/container">
<RelativeLayout android:layout_width="fill_parent"
android:id="@+id/container1" android:layout_height="fill_parent"
android:visibility="visible">
<ImageView android:layout_width="fill_parent"
android:layout_height="fill_parent" android:background="@drawable/one" />
</RelativeLayout>
<RelativeLayout android:layout_width="fill_parent"
android:background="@drawable/gray" android:id="@+id/container2"
android:visibility="gone" android:layout_height="fill_parent">
<ImageView android:layout_width="fill_parent"
android:layout_height="fill_parent" android:background="@drawable/three" />
</RelativeLayout>
</RelativeLayout>
4.程序所用到的anim中的幾個xml文件內容
push_left_in.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android=">
<translate android:fromXDelta="-100%p"
android:toXDelta="0"
android:ration="1000"/>
<alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:ration="100" />
</set>
push_left_out.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android=">
<translate android:fromXDelta="0" android:toXDelta="-100%p"
android:ration="1000" />
<alpha android:fromAlpha="1.0" android:toAlpha="1.0"
android:ration="400" />
</set>
push_right_in.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android=">
<translate android:fromXDelta="100%p"
android:toXDelta="0"
android:ration="1000"/>
<alpha android:fromAlpha="1.0" android:toAlpha="1.0" android:ration="400" />
</set>
push_right_out.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android=">
<translate android:fromXDelta="0"
android:toXDelta="100%p"
android:ration="1000"/>
<alpha android:fromAlpha="1.0" android:toAlpha="1.0" android:ration="400" />
</set>
6.至於程序中所用到的圖片,大家可以自己找幾張,修改名稱即可

熱點內容
安卓系統如何下載aov 發布:2025-01-24 16:29:53 瀏覽:572
iptables允許ip訪問 發布:2025-01-24 16:19:58 瀏覽:931
安卓80如何識別存儲卡許可權 發布:2025-01-24 16:19:54 瀏覽:231
存儲介質價格 發布:2025-01-24 16:19:18 瀏覽:150
刪除多個表sql 發布:2025-01-24 16:10:57 瀏覽:595
安卓設備版本哪裡看 發布:2025-01-24 16:06:00 瀏覽:549
編譯錯誤參數不可選 發布:2025-01-24 16:00:51 瀏覽:289
倉儲軟體用什麼伺服器 發布:2025-01-24 16:00:03 瀏覽:626
android協議分析 發布:2025-01-24 15:58:41 瀏覽:320
電腦配置512顯卡有什麼用 發布:2025-01-24 15:54:10 瀏覽:604