Android 实现全屏的Activity
来源:互联网 发布:java做统计报表 编辑:程序博客网 时间:2024/06/16 00:16
import android.annotation.SuppressLint;import android.app.Activity;import android.app.AlertDialog;import android.os.Bundle;import android.os.Handler;import android.view.GestureDetector;import android.view.MotionEvent;import android.view.View;/** * @author Dawid Drozd * <p> * Please check before adding this fragment simply call * isFragmentAvailable. * <p> * You must manually call onKeyDown and onWindowFocusChanged. */public abstract class FullScreenActivity extends Activity implements Runnable { //全屏使用的flag private static final int UI_FLAGS = View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY; GestureDetector mGesture = null; @SuppressLint("NewApi") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mGesture = new GestureDetector(this, new GestureListener()); final View decorView = getWindow().getDecorView(); decorView.setOnSystemUiVisibilityChangeListener (new View.OnSystemUiVisibilityChangeListener() { @Override public void onSystemUiVisibilityChange(int visibility) {// System.out.println("=====onSystemUiVisibilityChange======="); if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) { setImmersiveMode();// System.out.println("system bars are visible"); } } }); } @Override public boolean dispatchTouchEvent(MotionEvent ev) { mGesture.onTouchEvent(ev); return super.dispatchTouchEvent(ev); } @Override protected void onResume() { super.onResume(); setImmersiveMode(); } @Override public void onWindowFocusChanged(boolean hasFocus) {// System.out.println("onWindowFocusChanged"); setImmersiveMode(); _handler.removeCallbacks(this); _handler.postDelayed(this, 20); } @Override public void onStop() { _handler.removeCallbacks(this); super.onStop(); } @Override public void run() { setImmersiveMode(); } @SuppressLint("NewApi") public void setImmersiveMode() { setImmersiveMode(this); } @SuppressLint("NewApi") public void setImmersiveMode(Activity activity) {// System.out.println("===============setImmersiveMode==============="); activity.getWindow().getDecorView().setSystemUiVisibility(UI_FLAGS); } private Handler _handler = new Handler() ; private void addView() {// System.out.println("============addView ============"); AlertDialog builder = new AlertDialog.Builder(this).create(); builder.setTitle("测试"); builder.show(); builder.dismiss(); } class GestureListener extends GestureDetector.SimpleOnGestureListener { @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { //判断导航栏是否弹出,这是在横屏情况下 System.out.println("========onFling========"); if (e1.getY() > e2.getY() && e1.getY() > 1480) {//从下往上滑 addView(); } else if (e1.getY() < e2.getY() && e1.getY() < 70) { //从上往下滑 addView(); } return super.onFling(e1, e2, velocityX, velocityY); } } @Override protected void onDestroy() { super.onDestroy(); }}
阅读全文
0 0
- Android 实现全屏的Activity
- Android 实现Activity全屏显示
- Android下实现一个Activity的全屏显示
- Android下实现一个Activity的全屏显示
- Android中实现Activity全屏显示
- Android 设置Activity 全屏的方法
- android中activity全屏的方法
- android activity全屏的另一种写法
- Android Activity活动全屏显示的方法
- 实现activity全屏显示
- Android Activity设置全屏
- 【Android】Activity全屏设置
- Android Activity 全屏
- Android Activity 全屏
- Android Activity设置全屏
- Android Activity全屏
- Android 之 Activity全屏
- Android Activity 设置全屏
- myeclipse2014安装axis2插件
- XML
- Spark2.x学习笔记:16、Spark Streaming入门实例NetworkWordCount
- uboot传递initrd(initramfs or ramdisk) 到kernel的两种方式
- javaScript学习
- Android 实现全屏的Activity
- 剑指offer——面试题65:滑动窗口的最大值
- java并发编程 volatile
- [spark] 从spark-submit开始解析整个任务调度流程
- Jzoj4889 最长公共回文子序列
- python_mask_array
- Linux实验3
- 数据结构实验之二叉树五:层序遍历
- 互联网产品经理之前