



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 辽宁金融职业学院《中国现当代文学(四)》2023-2024学年第一学期期末试卷
- 新型服装创业培训课件
- 未来十年内新能源发展趋势预测
- 绿色能源领域的可持续发展与生物质能源行业标准研究
- 护理三基模考试题含答案
- 人工智能智能客服系统企业制定与实施新质生产力项目商业计划书
- 外研版九年级英语上册Module-11-达标测试卷附答案
- 焊接烟尘排放管理办法
- 煤气销售管理办法深圳
- 煤矿薄弱人物管理办法
- 2025年广东省中考英语试题卷(含答案解析)
- 2025年吉林省中考物理试卷真题及答案详解(精校打印版)
- 江苏省南京市六校联合体2024-2025学年高一下学期期末调研测试历史试题(含答案)
- 标准的编写讲课件
- 学堂在线 护理研究方法 期末考试答案
- 2025年湖南省中考英语试卷真题(含答案解析)
- 2025年法律职业资格考试民法专项练习卷:合同法真题解析及试题
- 2025年天津市中考英语真题试卷及答案
- 乡镇会议制度管理制度
- 玻尿酸介绍课件
- 2025至2030年中国电子束曝光系统行业市场研究分析及发展前景研判报告
评论
0/150
提交评论