国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android圖片加載框架Glide的基本用法介紹

2019-12-12 03:12:18
字體:
供稿:網(wǎng)友

簡介

Glide是一款圖片加載框架,可以在Android平臺上以簡單的方式加載和展示圖片。

dependencies {  compile 'com.github.bumptech.glide:glide:3.7.0'}

在清單文件中加入權(quán)限

<uses-permission android:name="android.permission.INTERNET" />

加載圖片

http://sc.VeVB.COm/uploads/allimg/150709/14-150FZ94211O4.jpg

新建布局文件

activity_main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:orientation="vertical">  <Button    android:id="@+id/load_image"    android:layout_marginTop="10dp"    android:layout_gravity="center_horizontal"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="加載圖片"/>  <ImageView    android:layout_marginTop="10dp"    android:id="@+id/image"    android:layout_width="match_parent"    android:layout_height="match_parent"/></LinearLayout>

MainActivity.java

package com.zhoujian.glide;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.ImageView;import com.bumptech.glide.Glide;public class MainActivity extends AppCompatActivity{  private Button mLoad_image;  private ImageView mImage;  @Override  protected void onCreate(Bundle savedInstanceState)  {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    initViews();    clickEvent();  }  private void initViews()  {    mLoad_image = (Button)findViewById(R.id.load_image);    mImage = (ImageView)findViewById(R.id.image);  }  private void clickEvent()  {    mLoad_image.setOnClickListener(new View.OnClickListener()    {      @Override      public void onClick(View v)      {        String url= "http://sc.VeVB.COm/uploads/allimg/150709/14-150FZ94211O4.jpg";        Glide.with(MainActivity.this).load(url).into(mImage);      }    });  }}

只要一行代碼,就可以把圖片加載進來


調(diào)用Glide.with()方法用于創(chuàng)建一個圖片的實例。with方法可以接受Context、Activity和Fragment類型的參數(shù)。如果調(diào)用不在Activity中或者Fragment中,可以傳入ApplicationContext。

Glide支持加載各種圖片資源,包括網(wǎng)絡(luò)圖片、本地圖片、應(yīng)用資源、Uri對象等

// 加載本地圖片F(xiàn)ile file = new File(getExternalCacheDir() + "/demo.jpg");Glide.with(this).load(file).into(imageView);// 加載應(yīng)用資源Glide.with(this).load(R.drawable.image).into(imageView);// 加載二進制流byte[] image = getImageBytes();Glide.with(this).load(image).into(imageView);// 加載Uri對象Uri imageUri = getImageUri();Glide.with(this).load(imageUri).into(imageView);

占位圖

  Glide.with(MainActivity.this)     .load(url)     .placeholder(R.mipmap.placeholder)     .into(mImage);

異常占位圖

//錯誤的圖片地址String url1 = "http://sc.net/uploads/allimg/150709/14-150FZ94211O4.jpg";Glide.with(MainActivity.this)    .load(url1)    .placeholder(R.mipmap.placeholder)//加載占位圖    .error(R.mipmap.error)//異常占位圖    .into(mImage);

指定圖片格式

Glide支持加載GIF圖片的,而Picasso是不支持加載GIF圖片的。

Glide內(nèi)部會自動判斷圖片格式。比如這是一張GIF圖片的URL地址:

復(fù)制代碼 代碼如下:

https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=3396140532,1228025744&fm=23&gp=0.jpg

String url2 = "https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=3396140532,1228025744&fm=23&gp=0.jpg";Glide.with(MainActivity.this)   .load(url2)   .placeholder(R.mipmap.placeholder)//加載占位圖   .error(R.mipmap.error)//異常占位圖   .into(mImage);


只允許加載靜態(tài)圖:asBitmap

String url2 = "https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=3396140532,1228025744&fm=23&gp=0.jpg";Glide.with(MainActivity.this)   .load(url2)   .asBitmap()//只允許加載靜態(tài)圖   .placeholder(R.mipmap.placeholder)//加載占位圖   .error(R.mipmap.error)//異常占位圖   .into(mImage);

如果傳入的是一個gif動態(tài)圖,只會顯示第一幀圖片


只允許加載動態(tài)圖:.asGif()

String url2 = "https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=3396140532,1228025744&fm=23&gp=0.jpg"; Glide.with(MainActivity.this)    .load(url2)    .asGif()//只允許加載動態(tài)圖    .placeholder(R.mipmap.placeholder)//加載占位圖    .error(R.mipmap.error)//異常占位圖    .into(mImage);


指定圖片大小

使用Glide,我們就不用擔心圖片內(nèi)存浪費,甚至是內(nèi)存溢出的問題。
因為Glide從來都不會直接將圖片的完整尺寸全部加載到內(nèi)存中,而是用多少加載多少。Glide會自動判斷ImageView的大小,然后只將這么大的圖片像素加載到內(nèi)存當中。

當然我們也可以指定圖片的固定大小

當指定圖片大小的時候,要把ImageView的寬高該為包裹內(nèi)容

Glide.with(MainActivity.this)   .load(url)   .asBitmap()//只允許加載動態(tài)圖   .placeholder(R.mipmap.placeholder)//加載占位圖   .error(R.mipmap.error)//異常占位圖   .override(400, 300)   .into(mImage);

加載效果:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 武汉市| 庆云县| 屏南县| 青神县| 丰台区| 乌兰浩特市| 比如县| 绥德县| 思茅市| 广东省| 昌乐县| 靖江市| 屏东市| 辽源市| 孟津县| 栾川县| 大石桥市| 陇西县| 西和县| 孝昌县| 安多县| 礼泉县| 永嘉县| 温宿县| 偏关县| 明水县| 德惠市| 烟台市| 鲁山县| 名山县| 沂南县| 神农架林区| 佳木斯市| 平邑县| 宝鸡市| 门源| 来宾市| 富锦市| 南京市| 临颍县| 勃利县|