在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Android/ 縮放和旋轉(zhuǎn)圖片
進度條
在JAVA代碼中使用Drawees
Drawee的各種效果配置
緩存
一些陷阱
關(guān)于在Android Studio中編譯
多圖請求及圖片復(fù)用
自定義網(wǎng)絡(luò)加載
支持的URIs
可關(guān)閉的引用
監(jiān)聽下載事件
修改圖片
引入Fresco
縮放
圓角和圓圈
配置Image Pipeline
縮放和旋轉(zhuǎn)圖片
(圖片請求)Image Requests
自定義View
使用ControllerBuilder
在XML中使用Drawees
開始使用 Fresco
關(guān)鍵概念
Image Pipeline介紹
漸進式JPEG圖
數(shù)據(jù)源和數(shù)據(jù)訂閱者
直接使用Image Pipeline
動畫圖(gif)
使用其他的Image Loader

縮放和旋轉(zhuǎn)圖片

本教程內(nèi)容來源于:http://fresco-cn.org
采用 知識共享 署名 4.0 國際 許可協(xié)議 進行許可

使用這個功能需要直接創(chuàng)建 image request。

縮放圖片

什么時候該修改圖片尺寸

一般地,當所要顯示的圖片和顯示區(qū)域大小不一致時,會按以下方式進行處理。

  1. 從服務(wù)器下載小一些的圖片
  2. 顯示時縮放圖片
  3. 調(diào)整圖片尺寸大小

對于一個圖片,如果服務(wù)器支持不同尺寸的縮略圖,那么每次下載都選擇尺寸最匹配的圖片,這個不僅節(jié)省數(shù)據(jù)流量也節(jié)約本地儲存和CPU。

如果服務(wù)器不支持,或者處理本地圖片的話,第二個選擇是使用縮放類型??s放是用Androi內(nèi)置的功能使圖像和顯示邊界相符。在4.0之后,支持硬件加速。這在大部分情況下是最快,同時也是最高效的顯示一張和顯示邊界大小相符的圖片的方式。首先指定layout_widthlayout_width為指定值,然后指定縮放類型

但當所要顯示的圖片比顯示區(qū)域大許多的時候,不推薦這樣做,縮放過程會導(dǎo)致大量的內(nèi)存消耗。

這時,需要改變圖片尺寸。

修改圖片尺寸

調(diào)整大小并不是修改原來的文件,而是在解碼之前,在native內(nèi)存中修改。

這個縮放方法,比Android內(nèi)置的縮放范圍更大。Android相機生成的照片一般尺寸都很大,需要調(diào)整大小之后才能被顯示。

目前,僅僅支持JPEG格式的圖片,同時,大部分的Android系統(tǒng)相機圖片都是JPEG的。

如果要修改圖片尺寸,創(chuàng)建ImageRequest時,提供一個 ResizeOptions:

Uri uri = "file:///mnt/sdcard/MyApp/myfile.jpg";
int width = 50, height = 50;
ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)
    .setResizeOptions(new ResizeOptions(width, height))
    .build();
PipelineDraweeController controller = Fresco.newDraweeControllerBuilder()
    .setOldController(mDraweeView.getController())
    .setImageRequest(request)
    .build();
mSimpleDraweeView.setController(controller);

自動旋轉(zhuǎn)

如果看到的圖片是側(cè)著的,用戶是難受的。許多設(shè)備會在JPEG文件的metadata中記錄下照片的方向。如果你想圖片呈現(xiàn)的方向和設(shè)備屏幕的方向一致,你可以簡單地這樣做到:

ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)
    .setAutoRotateEnabled(true)
    .build();
// as above