Android 让图片等比例缩放的三种方法
方法一:客戶端等比例
前提條件:服務(wù)器端需要返回原始圖片的“寬和高”或者“寬高縮放比例”,客戶端要顯示的圖片的寬或者高只要其一是固定的(例如:高度為200,寬度未知,或者高度為400寬度未知)
在這種條件下客戶端可以根據(jù)服務(wù)端返回的圖片的寬高或者寬高比例計(jì)算出圖片相對(duì)于屏幕的寬或者高。例如:縮放比例為:寬(圖片原始寬度200px)/高(圖片原始高度400px) = 0.5 。客戶端定義要顯示的寬度為100px,則根據(jù)縮放比例高度應(yīng)該顯示200px(100/0.5=200)圖片才不會(huì)變形。android:scaleType="fitXY"
方法二:服務(wù)端等比例
前提條件:客戶端必須告訴服務(wù)端他要拿到的圖片的寬度和高度。
服務(wù)端根據(jù)客戶端給出的寬高,按照服務(wù)端能給到的最優(yōu)方案返回一張按照等比例縮放的縮略圖,給客戶端顯示?android:scaleType="fitXY"
方法三:客戶端+服務(wù)端都等比例縮放
方法一和方法二都能夠在一定程度上解決圖片按等比例方式顯示,但是都具有一定的不足,第一種方法的不足之處是:服務(wù)端返回的圖片是原圖,比較浪費(fèi)流量和手機(jī)內(nèi)存。第二中方法的不足之處是,有時(shí)候客戶端給到服務(wù)端的寬高,服務(wù)端并不能夠按照客戶端的要求
返回。因此在顯示上會(huì)出現(xiàn)一定的拉伸或者壓縮。
比較好的一種方法是:第一種方法+第二種方法。首先服務(wù)端會(huì)給到客戶端原始圖片的寬高比例,客戶端根據(jù)寬高比例,計(jì)算出最優(yōu)的要顯示到界面上的寬和高給到服務(wù)器。服務(wù)器拿到客戶端給的寬高之后,計(jì)算出一個(gè)縮略圖給到客戶端,之后客戶端拿到這張圖片直接顯示。android:scaleType="fitXY"
轉(zhuǎn)載于:https://www.cnblogs.com/tony-yang-flutter/p/4807735.html
與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的Android 让图片等比例缩放的三种方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: krpano使用总结-地图路线
- 下一篇: Android4.4KitKat支持u盘