【移动应用开发技术】Android中如何使用Glide框架_第1页
【移动应用开发技术】Android中如何使用Glide框架_第2页
【移动应用开发技术】Android中如何使用Glide框架_第3页
【移动应用开发技术】Android中如何使用Glide框架_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】Android中如何使用Glide框架

加载网络图片compile

'com.android.support:recyclerview-v7:25.0.0'compile

'com.github.bumptech.glide:glide:3.7.0'<?xml

version="1.0"

encoding="utf-8"?><android.support.v7.widget.RecyclerView

xmlns:android="/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:id="@+id/recycler_view"></android.support.v7.widget.RecyclerView><?xml

version="1.0"

encoding="utf-8"?><LinearLayout

xmlns:android="/apk/res/android"

android:orientation="vertical"

android:layout_width="match_parent"

android:layout_height="wrap_content">

<ImageView

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:adjustViewBounds="true"

android:id="@+id/image"/></LinearLayout>@Overridepublic

ViewHolder

onCreateViewHolder(ViewGroup

parent,

int

viewType)

{

View

v

=

LayoutInflater.from(mContext).inflate(R.layout.list_item,parent,false);

return

new

ViewHolder(v);

}@Overridepublic

void

onBindViewHolder(ViewHolder

holder,

int

position)

{

final

String

url

=

mItems.get(position);

Log.e("tag","============onBindViewHolder

url:

"+url);

Glide.with(mContext)

.load(url)

.placeholder(R.mipmap.ic_launcher)

.diskCacheStrategy(DiskCacheStrategy.RESULT)

.into(holder.image);

holder.image.setOnClickListener(new

View.OnClickListener(){

@Override

public

void

onClick(View

v)

{

Intent

intent

=

new

Intent();

intent.setClass(mContext,PreviewImageActivity.class);

intent.putExtra("url",url);

mContext.startActivity(intent);

}

});

}@Overridepublic

int

getItemCount()

{

return

mItems.size();

}public

class

ViewHolder

extends

RecyclerView.ViewHolder{

ImageView

image;

public

ViewHolder(View

itemView)

{

super(itemView);

image

=

(ImageView)itemView.findViewById(R.id.image);

}

}@Nullable@Overridepublic

View

onCreateView(LayoutInflater

inflater,

@Nullable

ViewGroup

container,

@Nullable

Bundle

savedInstanceState)

{

View

v

=

inflater.inflate(R.layout.fragment_list,container,false);

mClient

=

new

OkHttpClient();

mReyclerView

=

(RecyclerView)

v.findViewById(R.id.recycler_view);

mReyclerView.setLayoutManager(new

StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL));

mAdapter

=

new

GankAdapter(getActivity(),mUrls);

mReyclerView.setAdapter(mAdapter);

loadApi(index);

mReyclerView.addOnScrollListener(new

RecyclerView.OnScrollListener()

{

@Override

public

void

onScrollStateChanged(RecyclerView

recyclerView,

int

newState)

{

super.onScrollStateChanged(recyclerView,

newState);

}

@Override

public

void

onScrolled(RecyclerView

recyclerView,

int

dx,

int

dy)

{

super.onScrolled(recyclerView,

dx,

dy);

if(isScrollToEnd(mReyclerView)){

Log.e("tag","============scroll

to

end");

index

+=

1;

loadApi(index);

}

}

});

return

v;

}compile

'com.squareup.okhttp3:okhttp:3.4.1'private

void

loadApi(int

page){

Request

request

=

new

Request.Builder().url("http://gank.io/api/data/%E7%A6%8F%E5%88%A9/10/"+page).build();

mClient.newCall(request).enqueue(new

Callback()

{

@Override

public

void

onFailure(Call

call,

IOException

e)

{

Log.e("tag","loading

failure

");

e.printStackTrace();

}

@Override

public

void

onResponse(Call

call,

Response

response)

throws

IOException

{

if(response.isSuccessful()){

String

result

=

response.body().string();

try

{

JSONObject

json

=

new

JSONObject(result);

JSONArray

array

=

new

JSONArray(json.getString("results"));

for(int

i

=

0;i<array.length();i++){

JSONObject

ob

=

array.getJSONObject(i);

mUrls.add(ob.getString("url"));

Log.e("tag","==========

url:

"+ob.getString("url"));

}

mHandler.sendEmptyMessage(2);

}catch

(JSONException

e){

e.printStackTrace();

}

}

}

});

}https://upload-images.jianshu.io/upload_images/3117364-9be6dad47a327291.png?imageMogr2/auto-orient/strip加载本地图片private

void

loadAlbum(){

AsyncTask<Void,

Void,

Void>

asyncTask

=

new

AsyncTask<Void,

Void,

Void>()

{

@Override

protected

Void

doInBackground(Void...

params)

{

Cursor

c

=

getContext().getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,

new

String[]{MediaStore.Images.ImageColumns.DATA},null,null,

MediaStore.Images.ImageColumns.DATE_TAKEN+"

desc

");

if(null

!=

c

&&

c.getCount()

>

0

&&

c.moveToFirst()){

while

(c.moveToNext()){

mData.add(c.getString(c.getColumnIndex(MediaStore.Images.ImageColumns.DATA)));

}

}

return

null;

}

@Override

protected

void

onPostExecute(Void

aVoid)

{

mHandler.sendEmptyMessage(2);

}

};

asyncTask.execute();

}https://upload-images.jianshu.io/upload_images/3117364-e5dae1631f65315e.png?imageMogr2/auto-orient/strip添加图像变换compile

'jp.wasabeef:glide-transformations:2.0.1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论