新聞中心
Android獲取軟鍵盤高度
在 Android 里我們是無(wú)法直接獲取軟鍵盤高度的,但是在某些場(chǎng)景下,我們又需要獲取軟鍵盤的高度。我們可以使用 ViewTreeObserver.OnGlobalLayoutListener 來(lái)監(jiān)聽窗口大小的變化,當(dāng)軟鍵盤彈出時(shí),窗口高度會(huì)變小,使用原始窗口高度減去當(dāng)前窗口高度,就可以得出軟鍵盤的高度了。
東莞ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!
一般我們?cè)?Activity 的 onCreate() 方法中開始監(jiān)聽:
請(qǐng)注意當(dāng) Activity 被銷毀的時(shí)候,一定要移除監(jiān)聽,否則就會(huì)產(chǎn)生內(nèi)存泄漏:
通過(guò)以上方法可以實(shí)時(shí)監(jiān)聽軟鍵盤的高度變化,特別是像有些輸入法例如搜狗,可以隨時(shí)切換拼音輸入、手寫輸入,這個(gè)時(shí)候軟鍵盤的高度都會(huì)發(fā)生變化。
除此之外,還可以通過(guò)該方法判斷軟鍵盤是否彈出。
如何獲取到Android控件的高度
你可以自己設(shè)定一個(gè)控件的高度,
android:layout_height="wrap_content"中,
“wrap_content”可以隨意設(shè)定,你可以用全屏"match_parent"
也可以用數(shù)值來(lái)寫,我一般使用 XX dp來(lái)使用指定的高度
Android 獲取手機(jī)屏幕高度 getMetrics和getRealMetrics的區(qū)別
先說(shuō)正確的獲取屏幕高度方式
使用以下的方法去獲取獲取應(yīng)用的屏幕高度
此處通過(guò) getMetrics() 獲取的高度其實(shí)是去除了虛擬按鍵后的高度。所以和手機(jī)的實(shí)際屏幕高度可能有差異
getReaMetrics() 則是真正原始的屏幕尺寸
android 開發(fā)中 怎么用js獲取手機(jī)屏幕高度
webview.addjavascriptinterface可以調(diào)用android代碼
android可以獲得屏幕高度
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int height = dm.heightPixels//這個(gè)就是屏幕高度了。
webView.addJavascriptInterface(new WebAppInterface(this), "Android");
這個(gè)就創(chuàng)立了一個(gè)接口名,叫“Android”,運(yùn)行在WebView中的JS代碼可以通過(guò)這個(gè)名字調(diào)用WebAppInterface類中的showToast()方法:
input type="button" value="Say hello" onClick="showAndroidToast('Hello Android!')" /
script type="text/javascript"
function showAndroidToast(toast)
{
Android.showToast(toast);
}
/script
android view怎么獲取高度
在Android開發(fā)過(guò)程中,有時(shí)需要獲取View繪制前的高度或者寬度,一種的可能情形是初始化的時(shí)候讓某個(gè)View的Visible = Gone的,當(dāng)觸發(fā)某個(gè)事件的時(shí)候需要它顯示并且希望有一些動(dòng)畫效果。
這時(shí)候就要獲取這個(gè)View顯示前即繪制前的寬度或者高度。原理很簡(jiǎn)單,View的繪制過(guò)程發(fā)生之前,會(huì)先執(zhí)行onMeasure方法。那么就可以利用反射來(lái)獲取需要的值。下面給出獲取高度的代碼,寬度同理。
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();
}
拿到這個(gè)高度之后就可以做想做的動(dòng)畫效果或者是其他的事情了。
本文標(biāo)題:android獲取高度,安卓獲取控件高度
文章位置:http://www.ef60e0e.cn/article/dsejhjc.html