欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

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

我的做法是,在代碼中通過(guò)縮放后得到圖片,然后通過(guò)設(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對(duì)象
Bitmap resizeBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmapWidth,
        bitmapHeight, matrix, true);

以上代碼,分為以下步驟

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

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

相關(guān)文章

  • 如何在Spring boot加入shiro支持

    如何在Spring boot加入shiro支持

    這篇文章主要介紹了如何在Spring boot加入shiro支持,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Java+opencv3.2.0之scharr濾波器

    Java+opencv3.2.0之scharr濾波器

    這篇文章主要為大家詳細(xì)介紹了Java+opencv3.2.0之scharr濾波器的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • 深入解讀Java代碼組織中的package包結(jié)構(gòu)

    深入解讀Java代碼組織中的package包結(jié)構(gòu)

    這篇文章主要介紹了Java代碼組織中的package包結(jié)構(gòu),是Java入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2016-03-03
  • 這一次搞懂Spring事務(wù)注解的解析方式

    這一次搞懂Spring事務(wù)注解的解析方式

    這篇文章主要介紹了這一次搞懂Spring事務(wù)注解的解析方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • java實(shí)現(xiàn)2048小游戲(含注釋)

    java實(shí)現(xiàn)2048小游戲(含注釋)

    這篇文章主要為大家介紹了java實(shí)現(xiàn)2048小游戲,含詳細(xì)注釋?zhuān)闹惺纠a介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • Java實(shí)現(xiàn)基于JDBC操作mysql數(shù)據(jù)庫(kù)的方法

    Java實(shí)現(xiàn)基于JDBC操作mysql數(shù)據(jù)庫(kù)的方法

    這篇文章主要介紹了Java實(shí)現(xiàn)基于JDBC操作mysql數(shù)據(jù)庫(kù)的方法,結(jié)合實(shí)例形式分析了java使用JDBC實(shí)現(xiàn)針對(duì)mysql數(shù)據(jù)庫(kù)的連接、查詢、輸出等相關(guān)操作技巧,需要的朋友可以參考下
    2017-12-12
  • Java隨機(jī)字符串與簡(jiǎn)單加密工具類(lèi)詳解

    Java隨機(jī)字符串與簡(jiǎn)單加密工具類(lèi)詳解

    這篇文章主要介紹了Java隨機(jī)字符串與簡(jiǎn)單加密工具類(lèi),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • springboot?jpa之返回表中部分字段的處理詳解

    springboot?jpa之返回表中部分字段的處理詳解

    這篇文章主要介紹了springboot?jpa之返回表中部分字段的處理詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 在Java中實(shí)現(xiàn)可見(jiàn)性(visibility)的主要方法詳解

    在Java中實(shí)現(xiàn)可見(jiàn)性(visibility)的主要方法詳解

    這篇文章主要介紹了在Java中實(shí)現(xiàn)可見(jiàn)性(visibility)的主要方法詳解,在Java中,使用關(guān)鍵字volatile和使用鎖(如synchronized關(guān)鍵字或 java.util.concurrent包中的鎖)來(lái)確保對(duì)共享變量的修改在多線程環(huán)境中能夠正確地被其他線程所觀察到,需要的朋友可以參考下
    2023-08-08
  • Java設(shè)計(jì)模式之模版方法模式簡(jiǎn)介

    Java設(shè)計(jì)模式之模版方法模式簡(jiǎn)介

    這篇文章主要介紹了Java設(shè)計(jì)模式之模版方法模式,需要的朋友可以參考下
    2014-07-07

最新評(píng)論