资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

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 获取状态栏高度
本文路径:http://cdkjz.cn/article/dsddcec.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220