真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

android獲取高度,android 獲取狀態(tài)欄高度

如何獲取到Android控件的高度

你可以自己設(shè)定一個(gè)控件的高度,

創(chuàng)新互聯(lián)公司專注于仁壽企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,電子商務(wù)商城網(wǎng)站建設(shè)。仁壽網(wǎng)站建設(shè)公司,為仁壽等地區(qū)提供建站服務(wù)。全流程按需制作網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)

android:layout_height="wrap_content"中,

“wrap_content”可以隨意設(shè)定,你可以用全屏"match_parent"

也可以用數(shù)值來寫,我一般使用 XX dp來使用指定的高度

Android獲取軟鍵盤高度

在 Android 里我們是無法直接獲取軟鍵盤高度的,但是在某些場(chǎng)景下,我們又需要獲取軟鍵盤的高度。我們可以使用 ViewTreeObserver.OnGlobalLayoutListener 來監(jiān)聽窗口大小的變化,當(dāng)軟鍵盤彈出時(shí),窗口高度會(huì)變小,使用原始窗口高度減去當(dāng)前窗口高度,就可以得出軟鍵盤的高度了。

一般我們?cè)?Activity 的 onCreate() 方法中開始監(jiān)聽:

請(qǐng)注意當(dāng) Activity 被銷毀的時(shí)候,一定要移除監(jiān)聽,否則就會(huì)產(chǎn)生內(nèi)存泄漏:

通過以上方法可以實(shí)時(shí)監(jiān)聽軟鍵盤的高度變化,特別是像有些輸入法例如搜狗,可以隨時(shí)切換拼音輸入、手寫輸入,這個(gè)時(shí)候軟鍵盤的高度都會(huì)發(fā)生變化。

除此之外,還可以通過該方法判斷軟鍵盤是否彈出。

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代碼可以通過這個(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模擬器的高度和寬度

// 獲取屏幕寬高(方法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開發(fā)過程中,有時(shí)需要獲取View繪制前的高度或者寬度,一種的可能情形是初始化的時(shí)候讓某個(gè)View的Visible = Gone的,當(dāng)觸發(fā)某個(gè)事件的時(shí)候需要它顯示并且希望有一些動(dòng)畫效果。

這時(shí)候就要獲取這個(gè)View顯示前即繪制前的寬度或者高度。原理很簡(jiǎn)單,View的繪制過程發(fā)生之前,會(huì)先執(zhí)行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();

}

拿到這個(gè)高度之后就可以做想做的動(dòng)畫效果或者是其他的事情了。

Android知識(shí)點(diǎn)——Glide獲取圖片寬高

??先很負(fù)責(zé)任的說一下,這個(gè)內(nèi)容也是百度來的,但是很不負(fù)責(zé)任的是,當(dāng)初只記錄解決方案,忘了記錄是查看的哪篇博客了,這里先對(duì)不知道借鑒的誰表示感謝。無法分享鏈接,就厚著臉皮把(轉(zhuǎn))字去掉了,請(qǐng)大家諒解。

??先提供一下 Android知識(shí)點(diǎn)——目錄 的鏈接,然后讓我們進(jìn)入正題。

??實(shí)際上,這篇博客所說的內(nèi)容并不是所有人都可以用到,畢竟大多數(shù)時(shí)候,我們只需要展示圖片,而并不需要知道圖片的寬高;有的時(shí)候我們只需要知道展示的寬高(即ImageView)的寬高,不需要知道圖片資源的實(shí)際尺寸。

??但是需求千千萬萬嘛,以程序員的腦洞,怎么能想到產(chǎn)品的腦洞究竟有多大呢?我這里就遇到了一個(gè)需求,那就是需要在一個(gè)可縮放的圖片上標(biāo)注icon(類似地圖上的marker)。這還不算完,畢竟在找到的圖片縮放控件 PhotoView 中,我們點(diǎn)擊到圖片上后,是有點(diǎn)擊點(diǎn)位在整個(gè)圖片上的百分比坐標(biāo)回調(diào)的。而多端通過百分比是很容易就能在圖片中獲取到相同的點(diǎn)位,并回顯出對(duì)應(yīng)的icon的(沒辦法,誰讓我找的是方便計(jì)算百分比的呢),結(jié)果Web端優(yōu)先做了這部分功能,使用的是在原圖上的具體坐標(biāo)。這樣我百分比的計(jì)劃自然就落空了,只能想辦法計(jì)算出具體的點(diǎn)位。

??因此獲取圖片的原始尺寸就是一個(gè)必不可少的環(huán)節(jié),我剛剛百度了一下,查到 wangke_king 的 Android獲取圖片的寬度和高度 中使用的方法是:

??我這里沒有親測(cè)過,不過應(yīng)該是沒有問題,但是很遺憾我們的需求是在網(wǎng)絡(luò)圖片上做測(cè)量,所以這個(gè)方法也無法使用,不過如果其他有類似本地圖片需求的,不妨嘗試一下。而我之前找到的解決方案為:

??首先說明,上述的方法是可以實(shí)現(xiàn)圖片的尺寸測(cè)量的,只是有一個(gè)小小的問題,那就是想要計(jì)算出Drawable的寬高,需要必須等到圖片加載完成之后,嘗試了使用view.post(),監(jiān)聽組件加載完成,但是并不是每次都能獲取到Drawable的寬高,因此當(dāng)初的解決方案是寫了個(gè)兩秒鐘的定時(shí)器,每50毫秒測(cè)量一次,直到獲取到值為止。這樣的解決方案可謂是相當(dāng)無腦了,而且還要消耗很多不必要的資源。

??還好皇天不負(fù)有心人啊,終于找到了通過Glide獲取圖片寬高的方式:

??這樣我們就可以通過回調(diào),在Glide將網(wǎng)絡(luò)圖片注入到對(duì)應(yīng)的圖片組件的時(shí)候,得到圖片的Bitmap,然后在通過Bitmap來獲取圖片的寬高。但是需要注意的一點(diǎn)是,Bitmap的泛型是需要手動(dòng)去設(shè)置的哦。

??另外SimpleTarget現(xiàn)在已經(jīng)過時(shí),暫時(shí)還沒有查到。我搜索過SimpleTarget過時(shí)使用什么替換,有一些說法是使用BitmapImageViewTarget ,不過下面是實(shí)際測(cè)試結(jié)果。

圖片鏈接:

百度圖片-景色

測(cè)量結(jié)果:

圖片信息:

如果不是我使用有誤的話,BitmapImageViewTarget 是無法替換SimpleTarget ,實(shí)現(xiàn)測(cè)量圖片原始寬高的功能的。


網(wǎng)頁標(biāo)題:android獲取高度,android 獲取狀態(tài)欄高度
本文URL:http://weahome.cn/article/dsddcec.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部