android获取高度,android 获取状态栏高度

如何获取到Android控件的高度

你可以自己设定一个控件的高度,

创新互联公司专注于仁寿企业网站建设,成都响应式网站建设公司,电子商务商城网站建设。仁寿网站建设公司,为仁寿等地区提供建站服务。全流程按需制作网站,专业设计,全程项目跟踪,创新互联公司专业和态度为您提供的服务

android:layout_height="wrap_content"中,

“wrap_content”可以随意设定,你可以用全屏"match_parent"

也可以用数值来写,我一般使用 XX dp来使用指定的高度

Android获取软键盘高度

在 Android 里我们是无法直接获取软键盘高度的,但是在某些场景下,我们又需要获取软键盘的高度。我们可以使用 ViewTreeObserver.OnGlobalLayoutListener 来监听窗口大小的变化,当软键盘弹出时,窗口高度会变小,使用原始窗口高度减去当前窗口高度,就可以得出软键盘的高度了。

一般我们在 Activity 的 onCreate() 方法中开始监听:

请注意当 Activity 被销毁的时候,一定要移除监听,否则就会产生内存泄漏:

通过以上方法可以实时监听软键盘的高度变化,特别是像有些输入法例如搜狗,可以随时切换拼音输入、手写输入,这个时候软键盘的高度都会发生变化。

除此之外,还可以通过该方法判断软键盘是否弹出。

android 开发中 怎么用js获取手机屏幕高度

webview.addjavascriptinterface可以调用android代码

android可以获得屏幕高度

DisplayMetrics dm = new DisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(dm);

int height = dm.heightPixels//这个就是屏幕高度了。

webView.addJavascriptInterface(new WebAppInterface(this), "Android");

这个就创立了一个接口名,叫“Android”,运行在WebView中的JS代码可以通过这个名字调用WebAppInterface类中的showToast()方法:

input type="button" value="Say hello" onClick="showAndroidToast('Hello Android!')" /

script type="text/javascript"

function showAndroidToast(toast)

{

Android.showToast(toast);

}

/script

如何获取android模拟器的高度和宽度

// 获取屏幕宽高(方法1)

int screenWidth = getWindowManager().getDefaultDisplay().getWidth(); // 屏幕宽(像素,如:480px)

int screenHeight = getWindowManager().getDefaultDisplay().getHeight(); // 屏幕高(像素,如:800p)

Log.e(TAG + " getDefaultDisplay", "screenWidth=" + screenWidth + "; screenHeight=" + screenHeight);

// 获取屏幕密度(方法2)

DisplayMetrics dm = new DisplayMetrics();

dm = getResources().getDisplayMetrics();

float density = dm.density; // 屏幕密度(像素比例:0.75/1.0/1.5/2.0)

int densityDPI = dm.densityDpi; // 屏幕密度(每寸像素:120/160/240/320)

float xdpi = dm.xdpi;

float ydpi = dm.ydpi;

Log.e(TAG + " DisplayMetrics", "xdpi=" + xdpi + "; ydpi=" + ydpi);

Log.e(TAG + " DisplayMetrics", "density=" + density + "; densityDPI=" + densityDPI);

screenWidth = dm.widthPixels; // 屏幕宽(像素,如:480px)

screenHeight = dm.heightPixels; // 屏幕高(像素,如:800px)

Log.e(TAG + " DisplayMetrics(111)", "screenWidth=" + screenWidth + "; screenHeight=" + screenHeight);

// 获取屏幕密度(方法3)

dm = new DisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(dm);

density = dm.density; // 屏幕密度(像素比例:0.75/1.0/1.5/2.0)

densityDPI = dm.densityDpi; // 屏幕密度(每寸像素:120/160/240/320)

xdpi = dm.xdpi;

ydpi = dm.ydpi;

Log.e(TAG + " DisplayMetrics", "xdpi=" + xdpi + "; ydpi=" + ydpi);

Log.e(TAG + " DisplayMetrics", "density=" + density + "; densityDPI=" + densityDPI);

int screenWidthDip = dm.widthPixels; // 屏幕宽(dip,如:320dip)

int screenHeightDip = dm.heightPixels; // 屏幕宽(dip,如:533dip)

Log.e(TAG + " DisplayMetrics(222)", "screenWidthDip=" + screenWidthDip + "; screenHeightDip=" + screenHeightDip);

screenWidth = (int)(dm.widthPixels * density + 0.5f); // 屏幕宽(px,如:480px)

screenHeight = (int)(dm.heightPixels * density + 0.5f); // 屏幕高(px,如:800px)

Log.e(TAG + " DisplayMetrics(222)", "screenWidth=" + screenWidth + "; screenHeight=" + screenHeight);

android view怎么获取高度

在Android开发过程中,有时需要获取View绘制前的高度或者宽度,一种的可能情形是初始化的时候让某个View的Visible = Gone的,当触发某个事件的时候需要它显示并且希望有一些动画效果。

这时候就要获取这个View显示前即绘制前的宽度或者高度。原理很简单,View的绘制过程发生之前,会先执行onMeasure方法。那么就可以利用反射来获取需要的值。下面给出获取高度的代码,宽度同理。

private int getTargetHeight(View v) {

try {

Method m = v.getClass().getDeclaredMethod("onMeasure", int.class,

int.class);

m.setAccessible(true);

m.invoke(v, MeasureSpec.makeMeasureSpec(

((View) v.getParent()).getMeasuredWidth(),

MeasureSpec.AT_MOST), MeasureSpec.makeMeasureSpec(0,

MeasureSpec.UNSPECIFIED));

} catch (Exception e) {

}

return v.getMeasuredHeight();

}

拿到这个高度之后就可以做想做的动画效果或者是其他的事情了。

Android知识点——Glide获取图片宽高

  先很负责任的说一下,这个内容也是百度来的,但是很不负责任的是,当初只记录解决方案,忘了记录是查看的哪篇博客了,这里先对不知道借鉴的谁表示感谢。无法分享链接,就厚着脸皮把(转)字去掉了,请大家谅解。

  先提供一下 Android知识点——目录 的链接,然后让我们进入正题。

  实际上,这篇博客所说的内容并不是所有人都可以用到,毕竟大多数时候,我们只需要展示图片,而并不需要知道图片的宽高;有的时候我们只需要知道展示的宽高(即ImageView)的宽高,不需要知道图片资源的实际尺寸。

  但是需求千千万万嘛,以程序员的脑洞,怎么能想到产品的脑洞究竟有多大呢?我这里就遇到了一个需求,那就是需要在一个可缩放的图片上标注icon(类似地图上的marker)。这还不算完,毕竟在找到的图片缩放控件 PhotoView 中,我们点击到图片上后,是有点击点位在整个图片上的百分比坐标回调的。而多端通过百分比是很容易就能在图片中获取到相同的点位,并回显出对应的icon的(没办法,谁让我找的是方便计算百分比的呢),结果Web端优先做了这部分功能,使用的是在原图上的具体坐标。这样我百分比的计划自然就落空了,只能想办法计算出具体的点位。

  因此获取图片的原始尺寸就是一个必不可少的环节,我刚刚百度了一下,查到 wangke_king 的 Android获取图片的宽度和高度 中使用的方法是:

  我这里没有亲测过,不过应该是没有问题,但是很遗憾我们的需求是在网络图片上做测量,所以这个方法也无法使用,不过如果其他有类似本地图片需求的,不妨尝试一下。而我之前找到的解决方案为:

  首先说明,上述的方法是可以实现图片的尺寸测量的,只是有一个小小的问题,那就是想要计算出Drawable的宽高,需要必须等到图片加载完成之后,尝试了使用view.post(),监听组件加载完成,但是并不是每次都能获取到Drawable的宽高,因此当初的解决方案是写了个两秒钟的定时器,每50毫秒测量一次,直到获取到值为止。这样的解决方案可谓是相当无脑了,而且还要消耗很多不必要的资源。

  还好皇天不负有心人啊,终于找到了通过Glide获取图片宽高的方式:

  这样我们就可以通过回调,在Glide将网络图片注入到对应的图片组件的时候,得到图片的Bitmap,然后在通过Bitmap来获取图片的宽高。但是需要注意的一点是,Bitmap的泛型是需要手动去设置的哦。

  另外SimpleTarget现在已经过时,暂时还没有查到。我搜索过SimpleTarget过时使用什么替换,有一些说法是使用BitmapImageViewTarget ,不过下面是实际测试结果。

图片链接:

百度图片-景色

测量结果:

图片信息:

如果不是我使用有误的话,BitmapImageViewTarget 是无法替换SimpleTarget ,实现测量图片原始宽高的功能的。

本文名称:android获取高度,android 获取状态栏高度
当前URL:https://www.cdcxhl.com/article42/dsddcec.html

成都网站建设公司_创新互联,为您提供静态网站网站维护品牌网站建设定制开发网站制作移动网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站建设