Ⅰ 如何監聽android的屏幕滑動停止事件
一般情況下,你在MotionEvent.ACTION_UP或者MotionEvent.ACTION_POINTER_UP等UP事件的回調中處理即可,因為手指在屏幕上如果按著即使不動的情況下,其實Action_move仍在回調,就是用戶比較難模擬孝敬出來那種完全手指按著屏幕清蠢一個像素點也沒有動的情況。
或者你不想在UP事件中處理,那麼就答慎陪在Move中檢測單位事件內移動的具體,比如100ms內如果用戶手指移動距離小於你自己定義的閥值的話,可以認為用戶沒有移動手指。
寫了半天才發現你問的不是這個問題。
你的問題可以通過先計算你將要滑動屏幕到的最終位置,然後通過判斷你現在已經滑動到的位置,如果兩個位置間的距離小於某個閥值比如一像素的話,那麼就可以看做屏幕滑動停止了。
可以參考一下launcher中對屏幕滑動結束的處理邏輯。
Ⅱ Android 手機軟鍵盤的彈起和關閉的監聽
在猜遲掘很多Android App 開發的過程中,需要對Activity 中 軟鍵盤的彈起和關閉進項監聽,但是Andoid中並沒有提供相對應的api進行監聽, 我有一個簡單的方法。
首先需要知道穗核一些基礎知識
在manifest文件中可以設置Activity的android:windowSoftInputMode屬性,這個屬性值常見的設置如下:android:windowSoftInputMode="stateAlwaysHidden|adjustPan"
那麼這里值的含義列表如下:
1、stateUnspecified:軟鍵盤的狀態並沒有指定,系統將選擇一個合適的狀態或依賴於主題的設置
2、stateUnchanged:當這個activity出現時,軟鍵盤將一直保持在上一個activity里的狀態,無論是隱藏還是顯示
3、stateHidden:用戶選擇activity時旦含,軟鍵盤總是被隱藏
4、stateAlwaysHidden:當該Activity主窗口獲取焦點時,軟鍵盤也總是被隱藏的
5、stateVisible:軟鍵盤通常是可見的
6、stateAlwaysVisible:用戶選擇activity時,軟鍵盤總是顯示的狀態
7、adjustUnspecified:默認設置,通常由系統自行決定是隱藏還是顯示
8、adjustResize:該Activity總是調整屏幕的大小以便留出軟鍵盤的空間
9、adjustPan:當前窗口的內容將自動移動以便當前焦點從不被鍵盤覆蓋和用戶能總是看到輸入內容的部分
案例:
1.我們需要將監聽所在的Activity在Manifest文件中的設置為如下形式:
<activity
android:name="com.zy.project.MainActivity"
android:label="@string/app_name"
android:windowSoftInputMode="stateAlwaysHidden|adjustResize" >
<intent-filter>
<action android:name="android.intent.action.MAIN/>
<category android:name="android.intent.category.LAUNCHER/>
</intent-filter>
</activity>
當有軟鍵盤彈起時,Activity的布局大小會被滾動上去,但是你仍然可以通過滑動瀏覽所有。
2 需要在外層布局文件設置一個id,並在activity 中設置監聽
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnLayoutChangeListener;
import android.widget.Toast;
public class MainActivity extends Activity implements OnLayoutChangeListener{
//Activity最外層的Layout視圖
private View rootView;
//屏幕高度
private int screenHeight = 0;
//軟體盤彈起後所佔高度閥值 一般是佔用屏幕的1/3
private int keyHeight = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
rootView = findViewById(R.id.root_layout);
//獲取屏幕高度
screenHeight = this.getWindowManager().getDefaultDisplay().getHeight();
//閥值設置為屏幕高度的1/3
keyHeight = screenHeight/3;
}
@Override
protected void onResume() {
super.onResume();
//添加layout大小發生改變監聽器
rootView.addOnLayoutChangeListener(this);
}
@Override
public void onLayoutChange(View v, int left, int top, int right,int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
//old是改變前的左上右下坐標點值,沒有old的是改變後的左上右下坐標點值
// System.out.println(oldLeft + " " + oldTop +" " + oldRight + " " + oldBottom);
// System.out.println(left + " " + top +" " + right + " " + bottom);
//現在認為只要控制項將Activity向上推的高度超過了1/3屏幕高,就認為軟鍵盤彈起
if(oldBottom != 0 && bottom != 0 &&(oldBottom - bottom > keyHeight)){
Toast.makeText(MainActivity.this, "監聽到軟鍵盤彈起...", Toast.LENGTH_SHORT).show();
}else if(oldBottom != 0 && bottom != 0 &&(bottom - oldBottom > keyHeight)){
Toast.makeText(MainActivity.this, "監聽到軟體盤關閉...", Toast.LENGTH_SHORT).show();
}
}
本文來自:http://m.blog.csdn.net/bear_huangzhen/article/details/45896333
Ⅲ 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");
}
}
(注意該判斷在屏幕切換橫豎屏是也會觸發,需要根據實際情況過濾橫豎屏切換的情況。)
Ⅳ 如何關閉手機屏幕朗讀功能呢
如果您使用的是華為手機,可以通過以下方法操作:
1. 通過快捷方式關閉TalkBack
快捷方式一:
溫馨提示:
(1)Android 8.0及以上版本支持迅轎通過快捷方式關閉TalkBack,可在關於手機頁面,查看Android版本。Android 8.0以下版本請通過設置界面關閉TalkBack。
(2)使用快捷方式退出的前提:進入TalkBack之前已在設置中開啟無障礙快捷方式、屏幕鎖定時可用相關開關,如沒有提前開啟,或此操作無法退出,請嘗試其他方式。
在鎖屏界面或桌面,同時按住音量上鍵+音量下鍵3秒左右,即可快速退出TalkBack模式。
快捷方式二:
長按電源鍵,直到出現關機界面,稍等5秒後,雙指長按屏幕3秒以上,即可快速退出TalkBack模式。
快捷方式三:
如果您在進入此模式前已開啟智慧語音喚醒,可以通過語音喚醒/電源鍵喚醒的方式,喚醒智慧語音,說出關閉指令,如「關閉盲人模式」,即可快速退出TalkBack模式。
2. 通過設置界面關閉TalkBack
TalkBack模式下,滑動屏幕需雙指同時滑動;單擊選中目標罩昌悄,選中後目標會出現綠框;在屏幕任意位置雙擊即可激活目標。
請根據您的手機系統版本選擇不同方物渣式設置TalkBack。
EMUI 10.X:點擊設置 > 輔助功能 > 無障礙 > 屏幕朗讀 ,關閉屏幕朗讀開關;
EMUI 8.X&EMUI 9.X:點擊設置 > 智能輔助 > 無障礙 > TalkBack ,關閉TalkBack開關;
EMUI 4.X&EMUI 5.X:點擊設置 > 高級設置 > 輔助功能 > TalkBack , 關閉TalkBack開關;
EMUI 3.1:點擊設置 > 輔助功能 > TalkBack ,關閉TalkBack的開關。
Ⅳ 如何監聽android的屏幕滑動停止事件
定義四個變數塌帶,
int posX,posY;
int currntX,currntY;
public boolean onTouchEvent(MotionEvent event){
switch (event.getAction())
{
case MotionEvent.ACTION_DOWN:
posX=(int)event.getX();
posY=(int)enent.getY();
break;
case MotionEvent.ACTION_UP:
currntX=(int) event.getX();
currntX=(int) event.getX();
break;
//然後按下抬起時的顫消坐標減去按下的坐標,根據差值判斷滑茄衫知動動作就行了。
}
return true;
}
Ⅵ Android 橫屏旋轉180°監聽方式
橫屏180°旋轉系統不會回調到到 onConfigurationChanged() ,只能使用其他的方案,目前有2個方案
1、使用 OrientationEventListener 監聽屏幕的旋轉,裡面本質使用的是 TYPE_ACCELEROMETER 感測器,具體如下:
開啟調用 mOrientationListener. enable() , 關閉調用 mOrientationListener. disable() ;這種方式對性能消耗比較大, 但是可以獲取到手機當前的角度
2、使用監聽 DisplayManager 方式,手機切換方向會導致UI 顯示的改變唯頃,所以會回調指嫌陸到這里
這種方式不會耗性能者顫
Ⅶ 如何監聽android的屏幕滑動停止事件
android的屏幕滑動簡消停止事件監聽方法為:
1、自定義一個ScrollView,內容只要將標準的ScrollView 拷慶遲貝出來,然後就可以利用Scroller的兩個屬性去判斷是否滾動完畢:
public final boolean isFinished() {
return mFinished;
}
public final int getDuration() {
return mDuration;
}
2、啟動線程來獲得當前的scrollview的高度,並實時更新就可以了,一旦高度不再發生變化則判斷為停止譽咐李。
Ⅷ android開發如何在廣播里啟動一個 activity
Intent intent1=new Intent(context,main.class);
intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent1);
System.out.println("進入鎖屏界面2");