一. Glide載入
Glide.with(this).load("http://p0.qhimg.com/t015f3654b694ad2f8a.jpg").into(imageView);
複製程式碼
效果圖
compile files('libs/glide-3.7.0.jar')
複製程式碼
二. Picasso
Picasso.with(getApplicationContext()) //
.load("http://p0.qhimg.com/t015f3654b694ad2f8a.jpg") //載入地址
.placeholder(R.mipmap.ic_launcher)
//佔點陣圖
.error(R.mipmap.ic_launcher) //載入失敗的圖
.fit() //充滿
.tag(getApplicationContext()) //標記
.into(imageView);//載入到的ImageView
複製程式碼
在Build注入
// 首先在專案中引入picasso(以gradle為例)
// compile 'com.squareup.picasso:picasso:2.5.2'
複製程式碼
三. ImageLoader
要使用ImageLoader必須先實現全域性的例項化,這樣可以避免每次使用都要重複程式碼 我們自定義一個MyApplication繼承自Application,程式碼如下- 然後需要在Manifest檔案中寫上程式碼:
//就是這一行程式碼,要加在application標籤下
android:name=".MyApplication"
複製程式碼
Build注入:
//ImageLoader
// compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
複製程式碼
- 然後再程式碼中使用就可以了
String urls = "http://p0.qhimg.com/t015f3654b694ad2f8a.jpg";
DisplayImageOptions options = new DisplayImageOptions.Builder()
.cacheInMemory(true)//在記憶體中快取
.cacheOnDisc(true)//儲存卡的快取,需要新增相應的儲存卡讀寫許可權
.showImageOnFail(R.mipmap.ic_launcher)//載入失敗的顯示的圖片
.showImageOnLoading(R.mipmap.ic_launcher)//載入過程中顯示的圖片
.build();
ImageLoader.getInstance().displayImage(urls, imageView, options);//載入圖片
複製程式碼
四. Fresco
- 這個框架可以用於載入網路上的gif圖片 使用這個框架需要匯入兩個包
-
同時我們在佈局中引入這個框架中自帶的SimpleDraweeView控制元件
-
注意這個使用的時候不要將它的寬高設定為包含內容,它不支援這個屬性,我們必須設定具體的寬高才可以
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
//注意導的哪一個包名,有恨多個,別混亂了
//一共匯入了兩個包啊,千萬記住了啊,用來載入gif動圖的框架
private Button button, button2;
private SimpleDraweeView simpleDraweeView;
//simpleDraweeView控制元件不支援包含內容的寬高設定,必須設定明確的大小
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//由於我們在佈局中使用了第三方框架的控制元件,所以我們必須在設定佈局之前進行第三方框架的initialize()方法
Fresco.initialize(this);
setContentView(R.layout.activity_main);
init();
}
private void init() {
button = (Button) findViewById(R.id.button);
button.setOnClickListener(this);
simpleDraweeView = (SimpleDraweeView) findViewById(R.id.simpleDraweeView);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
DraweeController animatedGifController = Fresco.newDraweeControllerBuilder()
//設定使其支援動畫
.setAutoPlayAnimations(true)
.setUri(Uri.parse("http://img4.duitang.com/uploads/item/201306/10/20130610100354_3WrWN.gif"))
.build();
simpleDraweeView.setController(animatedGifController);
break;
}
}
}
複製程式碼
- 關於SimpleDraweeView 的相關屬性 fresco是自定義的屬性標籤
xmlns:fresco="http://schemas.android.com/apk/res-auto"
1
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/my_image_view"
android:layout_width="20dp"
android:layout_height="20dp"
fresco:fadeDuration="300"
fresco:actualImageScaleType="focusCrop"
fresco:placeholderImage="@color/wait_color"
fresco:placeholderImageScaleType="fitCenter"
fresco:failureImage="@drawable/error"
fresco:failureImageScaleType="centerInside"
fresco:retryImage="@drawable/retrying"
fresco:retryImageScaleType="centerCrop"
fresco:progressBarImage="@drawable/progress_bar"
fresco:progressBarImageScaleType="centerInside"
fresco:progressBarAutoRotateInterval="1000"
fresco:backgroundImage="@color/blue"
fresco:overlayImage="@drawable/watermark"
fresco:pressedStateOverlayImage="@color/red"
fresco:roundAsCircle="false"
fresco:roundedCornerRadius="1dp"
fresco:roundTopLeft="true"
fresco:roundTopRight="false"
fresco:roundBottomLeft="false"
fresco:roundBottomRight="true"
fresco:roundWithOverlayColor="@color/corner_color"
fresco:roundingBorderWidth="2dp"
fresco:roundingBorderColor="@color/border_color"
/>
fadeDuration 淡入淡出的時間
actualImageScaleType 圖片的填充方式
placeholderImage 預載入圖片
placeholderImageScaleType 預載入圖片填充方式
failureImage 載入失敗圖片
failureImageScaleType 失敗圖片填充方式
retryImage 重試圖片
retryImageScaleType 重試圖片填充方式
progressBarImage 載入進度圖片
progressBarImageScaleType 進度圖片填充方式
progressBarAutoRotateInterval 自動旋轉間隔
backgroundImage 背景圖片
overlayImage 覆蓋圖片
pressedStateOverlayImage 按下時覆蓋圖
roundAsCircle 是否為圓形圖
roundedCornerRadius 圓角弧度
roundTopLeft 左上角弧度
roundWithOverlayColor 圓角的覆蓋色
roundingBorderWidth 圓角的邊框寬度
roundingBorderColor 圓角邊框顏色
複製程式碼
- 如果用此框架載入靜態圖片的話,直接使用此框架的空間setImageUri的方法就可以了
五. PhotoView
- 關於這個框架的使用在這裡 https://github.com/chrisbanes/PhotoView
Drawable bitmap = getResources().getDrawable(R.mipmap.ic_launcher);
imageView.setImageDrawable(bitmap);
PhotoViewAttacher mAttacher = new PhotoViewAttacher(imageView);
複製程式碼
- 這裡需要注意
// If you later call mImageView.setImageDrawable/setImageBitmap/setImageResource/etc then you just need to call
mAttacher.update();
複製程式碼
** 六. Xutils **
Build注入:
// xutils
compile 'org.xutils:xutils:3.3.38'
複製程式碼
在Application 進行註冊
public class App extends BaseApplication {
@Override
public void onCreate() {
super.onCreate();
//TODO 註冊Xutils
x.Ext.init(this);
}
}
複製程式碼
用法:
//TODO xUTILS
//xUtils繫結網路圖片
//第一個引數是ImageView物件
//第二個引數是URL字串地址
// x.image().bind(rxdq_big_img, "http://p0.so.qhmsg.com/sdr/600_900_/t01d43698fbeca29695.jpg");
複製程式碼
歡迎下方留言評論 的幫助,可以打賞支援一下
微信
支付寶