最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java圖片縮放實(shí)現(xiàn)圖片填充整個屏幕

 更新時間:2022年04月22日 10:08:35   作者:Alex_MaHao  
這篇文章主要介紹了java圖片縮放實(shí)現(xiàn)圖片填充整個屏幕,本文提供了兩種解決方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

在Android中因?yàn)椴煌袼厥謾C(jī)的多樣化,對于一張圖片,放大不同的手機(jī)上因像素不同顯示上也會有區(qū)別。

現(xiàn)有如下需求:將一張圖片寬度充滿整個屏幕并顯示。

我們常常做的可能是如下兩種方式對圖片進(jìn)行處理。

通過<ImageView>,定義屬性layout_parent="match_parent"和layout_parent="wrap_content",同時利用<ImageView>的scaleType屬性進(jìn)行縮放。
- scaleType="fitXY":當(dāng)設(shè)置為該屬性時,會導(dǎo)致圖片橫向拉伸,導(dǎo)致圖片變形,如果圖片上有字體,那么這將是很糟的一件事。
- scaleType="centerCrop":等比縮放應(yīng)該沒問題了吧,可是很尷尬,還是不行。圖片在處理的時候,首先會得到圖片的大小,確定圖片寬高之后再進(jìn)行縮放。這樣在圖片顯示的范圍確定之后再以圖片的中心點(diǎn)進(jìn)行等比縮放,直到寬度完全充滿了屏幕。這樣很尷尬,圖片的上下會被切掉,這樣圖片顯示不全,仍然不是我們想要的。

我的做法是,在代碼中通過縮放后得到圖片,然后通過設(shè)置backgroud的方法將圖片添加進(jìn)去,這樣就解決了,那么上代碼:

//得到圖片的分辨率,獲取寬度
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int mScreenWidth = dm.widthPixels;// 獲取屏幕分辨率寬度
int mScreenHeight = dm.heightPixels;

//加載圖片
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
        R.drawable.bank_help);
    int bitmapWidth = bitmap.getWidth();
    int bitmapHeight = bitmap.getHeight();

//得到圖片寬度比
float num = mScreenWidth / (float)bitmapWidth;

Matrix matrix = new Matrix();
matrix.postScale(num, num);
// 產(chǎn)生縮放后的Bitmap對象
Bitmap resizeBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmapWidth,
        bitmapHeight, matrix, true);

以上代碼,分為以下步驟

1. 獲取屏幕分辨率。
2. 獲取圖片并測量寬高,獲取圖片的寬高
3. 通過屏幕寬度/圖片寬度得到對應(yīng)的縮放比
4. 創(chuàng)建Matrix對象,并確定縮放。(ps:這個東西很叼,在前面的漸變色中也用到了改對象)
5. 通過Bitmap.createBitmap()方法生成圖片。(ps:最后一個參數(shù)必須傳true,傳入false的話,縮放的圖片會顯示不清楚)

以上就是java圖片處理相關(guān)操作介紹,希望對大家的學(xué)習(xí)有所幫助。

相關(guān)文章

  • Java使用JSONPath解析JSON完整內(nèi)容詳解

    Java使用JSONPath解析JSON完整內(nèi)容詳解

    這篇文章主要介紹了Java使用JSONPath解析JSON完整內(nèi)容詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Java中ScheduledExecutorService介紹和使用案例(推薦)

    Java中ScheduledExecutorService介紹和使用案例(推薦)

    ScheduledExecutorService是Java并發(fā)包中的接口,用于安排任務(wù)在給定延遲后運(yùn)行或定期執(zhí)行,它繼承自ExecutorService,具有線程池特性,可復(fù)用線程,提高效率,本文主要介紹java中的ScheduledExecutorService介紹和使用案例,感興趣的朋友一起看看吧
    2024-10-10
  • idea打開和讀取*properties文件亂碼的解決

    idea打開和讀取*properties文件亂碼的解決

    本文主要介紹了idea打開和讀取*properties文件亂碼的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • 關(guān)于各種排列組合java算法實(shí)現(xiàn)方法

    關(guān)于各種排列組合java算法實(shí)現(xiàn)方法

    這篇文章介紹了幾種用JAVA實(shí)現(xiàn)的排列組合算法,有需要的朋友可以參考一下
    2013-06-06
  • 詳解Spring Data JPA中Repository的接口查詢方法

    詳解Spring Data JPA中Repository的接口查詢方法

    repository代理有兩種方式從方法名中派生出特定存儲查詢:通過直接從方法名派生查詢和通過使用一個手動定義的查詢。本文將通過示例詳細(xì)講解Spring Data JPA中Repository的接口查詢方法,需要的可以參考一下
    2022-04-04
  • Java有效處理異常的三個原則

    Java有效處理異常的三個原則

    Java中異常提供了一種識別及響應(yīng)錯誤情況的一致性機(jī)制,有效地異常處理能使程序更加健壯、易于調(diào)試。那么這篇文章總結(jié)了Java有效處理異常的三個原則,有需要的朋友們可以參考借鑒。
    2016-09-09
  • java網(wǎng)上圖書商城(7)訂單模塊2

    java網(wǎng)上圖書商城(7)訂單模塊2

    這篇文章主要為大家詳細(xì)介紹了java網(wǎng)上圖書商城,訂單模塊第二篇,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • 如何對Mysql數(shù)據(jù)表查詢出來的結(jié)果進(jìn)行排序

    如何對Mysql數(shù)據(jù)表查詢出來的結(jié)果進(jìn)行排序

    這篇文章主要介紹了如何對Mysql數(shù)據(jù)表查詢出來的結(jié)果進(jìn)行排序問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Java實(shí)現(xiàn)簡單猜數(shù)字小游戲

    Java實(shí)現(xiàn)簡單猜數(shù)字小游戲

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)猜數(shù)字游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • 淺談MyBatis中@MapKey的妙用

    淺談MyBatis中@MapKey的妙用

    這篇文章主要介紹了MyBatis中@MapKey的妙用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01

最新評論

铅山县| 闵行区| 钟祥市| 雅安市| 都匀市| 徐闻县| 武陟县| 阿勒泰市| 当涂县| 盖州市| 毕节市| 东乌| 康乐县| 扬州市| 铅山县| 永年县| 峡江县| 年辖:市辖区| 滦平县| 包头市| 名山县| 黄平县| 屏边| 东海县| 武汉市| 镇康县| 定西市| 达州市| 南雄市| 清徐县| 玉环县| 襄垣县| 岳西县| 兴城市| 天气| 瓮安县| 成武县| 高州市| 瑞安市| 疏勒县| 九江县|