下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 延安大学《英语测试与评价》2022-2023学年第一学期期末试卷
- 铁路信号设备招标合同三篇
- 烟台大学《数据结构课程设计》2021-2022学年第一学期期末试卷
- 三年级数学(上)计算题专项练习附答案集锦
- 四年级数学(四则混合运算带括号)计算题专项练习与答案汇编
- 五年级数学(小数四则混合运算)计算题专项练习及答案
- 徐州工程学院《美术(Ⅱ):美术创作》2021-2022学年第一学期期末试卷
- 学期教学课程工作计划
- 主管职能与责任的全面分析计划
- 公关活动策划与实施方案计划
- 信息技术知到章节答案智慧树2023年烟台职业学院
- 2021年班组民主生活活动记录
- 2023福建中考道德与法治答题卡word版可编辑
- 天文学导论智慧树知到答案章节测试2023年中国科学技术大学
- 安徽海华科技集团有限公司年产2万吨甲酚技改及厂区清洁化升级改造项目环评报告书
- 12K101-3 离心通风机安装
- 《湖南省医疗保险“双通道”管理药品使用申请表》
- 2023年淮南高新区管委会公开招聘12人笔试备考题库及答案解析
- 德语国家发现之旅智慧树知到答案章节测试2023年天津外国语大学
- 初中语文文本解读优秀范例
- 羽毛球智慧树知到答案章节测试2023年华东交通大学
评论
0/150
提交评论