根據網路圖片的size大小設定UIImageView的大小
有時候在設定UIImageView的大小時候需要根據UIimage的長寬比來自動設定,不讓圖片原比例失真。
如果是從本地獲取到的圖片,[UIImageimageNamed:@""];
這樣就可以拿到image了,從而獲取到image的size。但大多數時候我們都是網路請求拿到的圖片,
我們需要
NSData *data = [NSData dataWithContentsOfURL:url];
image = [UIImageimageWithData:data];
這樣來得到image,但是在網路慢的情況下,這種同步的請求可能會讓執行緒卡住。
一般情況下我們都是使用SDWebImage這個第三方來載入圖片的。但都是用UIimageView來調Sd_webImage 這樣的方法直接設定,而不是拿到image後再去設定UIimageView的image,這樣我們就沒辦法先得到size設定好UIimageView的大小再去設定image。
在網上找到一個方法解決了這個問題,就是在SDWebImage 中有一個獲取快取的方法,先判斷SDWebImage有沒有快取這個圖片,有的話就獲取,沒有再使用
NSData *data = [NSData dataWithContentsOfURL:url];
image = [UIImageimageWithData:data];
來獲取
程式碼如下,
//顯示單張圖片時,固定寬度。
__block CGFloat itemW = 200;
__block CGFloat itemH = 0;
if (_photoDataArray.count == 1) {
UIImageView * imageView = [[UIImageView alloc] init];
NSURL * url = [NSURL URLWithString:_photoDataArray.firstObject];
[imageView sd_setImageWithURL:url placeholderImage:[UIImage imageNamed:@"placeHolder.jpg"]];
SDWebImageManager *manager = [SDWebImageManager sharedManager];
BOOL existBool = [manager diskImageExistsForURL:url];//判斷是否有快取
UIImage * image;
if (existBool) {
image = [[manager imageCache] imageFromDiskCacheForKey:url.absoluteString];
}else{
NSData *data = [NSData dataWithContentsOfURL:url];
image = [UIImage imageWithData:data];
}
//根據image的比例來設定高度
if (image.size.width) {
itemH = image.size.height / image.size.width * itemW;
if (itemH >= itemW) {
itemW = 120;
itemH = image.size.height / image.size.width * itemW;
}
}
效果如下,
相關推薦
根據網路圖片的size大小設定UIImageView的大小
有時候在設定UIImageView的大小時候需要根據UIimage的長寬比來自動設定,不讓圖片原比例失真。 如果是從本地獲取到的圖片,[UIImageimageNamed:@""]; 這樣就可以拿到image了,從而獲取到image的size。但大多數時候我們都是網路請求拿
根據桌面大小設定窗體大小
實現效果: 知識運用: 獲取桌面大小時,主要用到了Screen類: 表是單個系統上的一個或多個顯示裝置 其PrimaryScreen屬性用來獲取主顯示 返回一個Screen物件 而呼叫Screen物件的WorkingArea屬性可以獲取顯示器的工作區 實現
移動端根據裝置大小設定字型大小(居於案例的理解擴充套件)
1、問題描述: 拿到公司裡以前寫好的網頁檢視,發現它的CSS中有這樣一些東西: /*裝置豎屏時的樣式*/ @media all and (orientation : portrait){ .video_bg{ position:fixed;
js根據手機螢幕寬度自動設定字型大小
(function(doc,win){ var docEl = doc.documentElement, //文件根標籤 resizeEvent = 'orientation
Android 根據網路圖片URL轉Bitmap物件
/** * 根據圖片的url路徑獲得Bitmap物件 * @param url * @return */ private Bitmap returnBitmap(String url) {
Android 根據手機的螢幕的大小設定圖片的等比例縮放
最近用到把一個圖片繪製到畫布上,然後用畫筆做標記,但是獲取的是圖片的寬和高,這樣繪製出來的無法完全匹配成全屏,下面記錄一個方法等比例了縮放: /** * * @param bm 傳入的bitmap * @param newWidth 指定
Android 根據螢幕的寬度來設定圖片的大小,
比如 我要求 兩張圖片橫著螢幕中。但是要適應不同的螢幕 ImageView mImgZIv; DisplayMetrics dm = new DisplayMetrics(); getWindo
IOS -- 獲取本地圖片和網路圖片的大小size
// 獲取圖片的size CGSize size = [UIImage imageNamed:@"regStep2_sex"].size; 獲取網路圖片的尺寸: // 根據圖片url獲取圖片尺寸 +(CGSize)getImageSizeWithURL:
基於 TextView 1.直接設定 selector 背景 2.直接設定 drawableLeft 大小 3.圓角,圓形,背景/邊框/文字根據狀態變色
RTextView 專案地址:RuffianZhong/RTextView 簡介:基於 TextView 1.直接設定 selector 背景 2.直接設定 drawableLeft 大小 3.圓角,圓形,背景/邊框/文字根據狀態變色 更多:作者 &nb
openoffice轉excel為pdf檔案,根據excel檔案大小設定pdf頁面大小,只適用一個sheet的情況
1、maven注入連線openoffice的Jar和poi <dependency> <
iOS 網路圖片大小自適應
基於SDWebImage實現: __weak typeof(self)weakSelf = self; [self.imageView sd_setImageWithURL:[NSURL URLWithString:gM1.imageUrl] completed:^(UIImage * _N
移動端設定html的font-size從而設定rem的大小
(function(){ var colCount = 20; // 設定列寬 var colWidth = document.documentElement.clientWidth / colCo
根據螢幕大小設定字型
public static int adjustFontSize(int screenWidth, int screenHeight){ if (screenWidth <=
android圖片尺寸大小設定
貼上程式碼,以後直接複製貼上使用,不用再計算,再百度了!! 方法一:(按照圖片尺寸設定、方法中viewRootBanner為圖片或者裝載圖片的控制元件banner) 例如:750*286尺寸 的圖片 //設定圖片寬高比 float scale = (float) 750
[LeetCode] Set Intersection Size At Least Two 設定交集大小至少為2
An integer interval [a, b] (for integers a < b) is a set of all consecutive integers from a to b, including a and b. Find the minimum size of a set S
Markdown-圖片設定(大小,居中)
圖片位置-居左/居中/居右 利用markdown在編寫文件時插入圖片是預設靠左,有些時候將圖片設定為居中時可以更加的美觀,這時就需要在圖片的資訊前邊新增如下程式 <div align=center>![這裡寫圖片描述](http:...)
Go web開發判斷table裡元素的大小,並根據資料正負或大小設定不同樣式
問題描述: 比如新浪財經美股行情中心,漲跌額和漲跌幅,正數顯示紅色,負數顯示綠色 在用Go語言開發時,如何實現這樣的效果? 第一種方法:不使用js Go語言內建了一些進行模板渲染的函式,在官方原始碼/src/text/template/funcs.go中,專門用於GoWeb模板
CSDN-Markdown-圖片設定(大小,居中)
利用markdown在編寫文件時插入圖片是預設靠左,有些時候將圖片設定為居中時可以更加的美觀,這時就需要在圖片的資訊前邊新增如下程式 <div align=center>![這裡寫圖片描述](http:... 如果想將圖片位於右側,只需要將ce
HTML5基礎加強css樣式篇(背景圖大小設定:background-size)(三十九)
1.background-size屬性: <!DOCTYPE html> <html lang="en"> <head> <meta charset=
drawleft,textview、EditText中圖片大小設定
很多時候我們在textview或者edittext等的控制元件裡面設定圖片,比如搜尋。 如果想要改變圖片的大小,只要在程式碼裡面設定: //比如drawleft設定圖片大小 //獲取