Android屏幕和尺寸
DisplayMetrics dm=new DisplayMetrics();
//获取的像素高度不包含虚拟键所占空间
((WindowManager)context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay()
.getMetrics(dm);
int width=dm.widthPixels;//屏幕宽度(像素)
int height=dm.heightPixels;//屏幕高度(像素)
float density=dm.density;//dp缩放因子(0.75/1.0/1.5/3.0)
int densityDpi=dm.densityDpi;//广义密度(120/160/240/480)
float xdpi=dm.xdpi;//x轴方向的真实密度
float ydpi=dm.ydpi;//y轴方向的真实密度 - ::35.246 -/? I/UiUtils: getScreenWidthPixels: widthPixels=, heightPixels=
- ::35.246 -/? I/UiUtils: getScreenWidthPixels: density=3.0, densityDpi=
- ::35.246 -/? I/UiUtils: getScreenWidthPixels: xdpi=442.451, ydpi=443.345 getRealMetrics()和getMetrics()获取到的屏幕信息差别只在于widthPixels或heightPixels的值是否去除虚拟键所占用的像素,和是否全屏和沉浸模式无关。 来自 <http://xiaoyaozjl.iteye.com/blog/2178415> 使用getRealMetrics()
- ::45.793 -/? I/UiUtils: getScreenWidthPixels: widthPixels=, heightPixels=
- ::45.793 -/? I/UiUtils: getScreenWidthPixels: density=3.0, densityDpi=
- ::45.794 -/? I/UiUtils: getScreenWidthPixels: xdpi=442.451, ydpi=443.345
传递点击事件的同时拦截滑动事件
/*dispatch click event but intercept sliding event in the listView*/
recyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
LinearLayout linearLayout;
boolean mScrolling;
boolean mIsTouchInListView;
float touchDownx;
@Override
public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) { int x = (int) e.getRawX();
int y = (int) e.getRawY();
linearLayout = (LinearLayout) rv.findViewById(R.id.menu_layout);
mIsTouchInListView = !isTouchPointInView(linearLayout, x, y); switch(e.getAction()){
case MotionEvent.ACTION_DOWN:
touchDownx = e.getX();
mScrolling = false;
break;
case MotionEvent.ACTION_MOVE:
if(Math.abs(touchDownx -e.getX()) >= ViewConfiguration.get(mActivity).getScaledTouchSlop()){
mScrolling = true;
}else{
mScrolling = false;
}
break;
case MotionEvent.ACTION_UP:
mScrolling =false;
break;
} Log.i(TAG, "onInterceptTouchEvent: "+mIsTouchInListView+","+mScrolling); return (mIsTouchInListView && mScrolling);
} @Override
public void onTouchEvent(RecyclerView rv, MotionEvent e) {
Log.i(TAG, "onTouchEvent: ");
}
@Override
public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {}
});
全屏
Window window = getWindow();
WindowManager.LayoutParams params = window.getAttributes();
params.systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
window.setAttributes(params);
Dialog弹出时避免退出全屏
AlertDialog alertDialog = dialogBuilder.create();
alertDialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
DialogViewManager.fullScreenImmersive(alertDialog.getWindow().getDecorView());
alertDialog.show();
alertDialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
Android锁屏状态启动Activity
Window win = getWindow();
WindowManager.LayoutParams params = win.getAttributes();
params = win.getAttributes();
params.flags |= WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED; params.flags |= WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON;
PowerManager pm = ((PowerManager) getSystemService(POWER_SERVICE));
mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
mWakeLock.acquire();
Log.d(TAG, "acquire wake lock");
win.setAttributes(params);
Android屏幕和尺寸的更多相关文章
- Android屏幕图标尺寸规范
http://blog.csdn.net/dyllove98/article/details/9174229 . 程序启动图标:ldpi (120 dpi)小屏mdpi (160 dpi)中屏hdpi ...
- Android应用如何支持屏幕多尺寸多分辨率问题
作为Android应用程序开发者都知道android是一个“碎片化”的世界.多种系统版本.多种尺寸.多种分辨率.多种机型,还有不同的厂商定制的不同ROM,你开发的应用会在不可预期的手机上报错.这给开发 ...
- android 屏幕尺寸的理解
对android设备屏幕尺寸单位的理解 一.android移动设备(手机和平板)常用的关于屏幕的一些单位: 1.px:像素点,应该是一个统一的单位,与我们国际单位米(M)应该是一回事,它应该是屏幕尺寸 ...
- Android之获取屏幕的尺寸像素及获取状态栏标题栏高度
在Android的实际开发中,会经常用到获取屏幕的尺寸的问题,以便设置一些布局在屏幕上的固定位置,从而适配各个屏幕的设备. 今天我就来讲一下怎么得到当前设备的屏幕像素吧: 一.在Activity中: ...
- 【Android 应用开发】Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
. 作者 :万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/19698511 . 最近遇到了一系列的屏幕适配问题, 以及 ...
- Android应用程序支持不同屏幕(尺寸、密度)
how to build a user interface using Android layouts for all types of devices 使用Android布局设计的UI接口用于不同的 ...
- Android界面设计适配不同屏幕的尺寸和密度解读
Android是运行在各种提供不同的屏幕尺寸和密度的设备.Android系统提供跨设备的统一开发环境和处理大部分的工作,以调整每个应用程序的用户界面,以在其上显示的画面. 同时,该系统提供了API,允 ...
- Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
. 作者 :万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/19698511 . 最近遇到了一系列的屏幕适配问题, 以及 ...
- 获取Android屏幕尺寸、控件尺寸、状态栏/通知栏高度、导航栏高度
1.获取Android屏幕尺寸 我们能够通过getSize()方法获得屏幕的尺寸 Display display = getWindowManager().getDefaultDisplay(); P ...
随机推荐
- C#:DataGridView控件操作
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.W ...
- 剩下5种算法代码分析与使用示例(remove 、rotate 、sort、lower_bound、accumulate)
一.移除性算法 (remove) C++ Code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ...
- 1 - Reverse Integer
Reverse digits of an integer.Example1: x = 123, return 321Example2: x = -123, return -321Discuss: 1. ...
- mybatis的#和$的差别
在项目中假设使用mybatis保存形如"1,2,3"这种字符串.你须要使用"#"号取值.假设使用$符号会报错, 假设是查询形如"id in (1,2, ...
- JS自定义去除字符串左右两边的指定字符
function ltrim(str,char){ var pos = str.indexOf(char); var sonstr = str.substr(pos+1); return sonstr ...
- Centos Java 从1.7升级为1.8
查看安装的sdk版本 yum list installed |grep java 卸载JDK相关文件输入和tzdata-java输入 yum -y remove java-1.7.0-openjdk* ...
- 如何利用dex2jar反编译APK
工具/原料 电脑 dex2jar JD-GUI 方法/步骤 1 下载dex2jar和JD-GUI,在参考资料中添加了这两个工具的百度网盘下载地址供读者下载使用(笔者亲测) 2 找到我们准备测试用的ap ...
- Nmap速查手册
http://drops.wooyun.org/tips/4333 From:http://highon.coffee/docs/nmap/ 0x00:说明 只是一个快速查询手册,理论的东西都没有补充 ...
- R ggplot2 翻转坐标
p <- ggplot(mpg, aes(class, hwy)) p + geom_boxplot() p + geom_boxplot() + coord_flip()
- 如果本身kali就在局域网,shell在外网,怎么反弹连接呢?
kali虚拟机使用桥接,路由器端口映射监听的端口即可.