日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

android camera分辨率设置,请问如何使用camera2设置全屏preview,要求适配所有屏幕尺寸?...

發(fā)布時(shí)間:2024/9/20 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android camera分辨率设置,请问如何使用camera2设置全屏preview,要求适配所有屏幕尺寸?... 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

官方demo中的TextureView中重寫(xiě)了onMeasure方法,如下:

@Override

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

super.onMeasure(widthMeasureSpec, heightMeasureSpec);

int width = MeasureSpec.getSize(widthMeasureSpec);

int height = MeasureSpec.getSize(heightMeasureSpec);

if (0 == mRatioWidth || 0 == mRatioHeight) {

setMeasuredDimension(width, height);

} else {

if (width < height * mRatioWidth / mRatioHeight) {

setMeasuredDimension(width, width * mRatioHeight / mRatioWidth);

} else {

setMeasuredDimension(height * mRatioWidth / mRatioHeight, height);

}

}

}

這段代碼使得TextureView在寬高都不超過(guò)手機(jī)屏幕的情況下最大化顯示。

解決方案是,讓TextureView總是達(dá)到最大邊界,超出部分不進(jìn)行預(yù)覽(實(shí)際上還是能拍到的)。代碼如下:

@Override

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

super.onMeasure(widthMeasureSpec, heightMeasureSpec);

int width = MeasureSpec.getSize(widthMeasureSpec);

int height = MeasureSpec.getSize(heightMeasureSpec);

if (0 == mRatioWidth || 0 == mRatioHeight) {

setMeasuredDimension(width, height);

} else {

if (width > height * mRatioWidth / mRatioHeight) { //注意這里騷操作,替換"小于號(hào)"為"大于號(hào)"

setMeasuredDimension(width, width * mRatioHeight / mRatioWidth);

} else {

setMeasuredDimension(height * mRatioWidth / mRatioHeight, height);

}

}

}

實(shí)際上就是把判斷條件中的 "" 即可,天知道這一小段代碼害慘多少程序員。。

總結(jié)

以上是生活随笔為你收集整理的android camera分辨率设置,请问如何使用camera2设置全屏preview,要求适配所有屏幕尺寸?...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。