社区
Android
帖子详情
急!使用BaseQuickAdapter的时候在里面用Glide加载图片怎么找到Imageview
余震l
2017-09-06 06:53:12
急!使用BaseQuickAdapter的时候在里面用Glide加载图片怎么找到Imageview
如题请问有什么直接获取的方法吗 我在碎片里获取的传进这个Adapter类 不起作用啊
新人求指教
...全文
1237
3
打赏
收藏
急!使用BaseQuickAdapter的时候在里面用Glide加载图片怎么找到Imageview
急!使用BaseQuickAdapter的时候在里面用Glide加载图片怎么找到Imageview 如题请问有什么直接获取的方法吗 我在碎片里获取的传进这个Adapter类 不起作用啊 新人求指教
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
余震l
2019-05-17
打赏
举报
回复
2
引用 3 楼 的回复:
楼主现在转行了没。。。。。感觉楼主不适合做安卓。。。。
这个人是个蔡徐坤吧,2017年关于这个框架的文章就是少,那时候我刚入行,提问个问题怎么了,两年后遇到这种挖坟的狗
lixuce1234
2017-09-07
打赏
举报
回复
1
ImageView logoview = helper.getView(R.id.logo_item_my_policy); Glide.with(mContext).load(Constant.WEBURI+policyDetail.getInsureImgUrl()).placeholder(R.mipmap.icon_baoxian_icon).error(R.mipmap.icon_default_banner).into(logoview); 这样就可以了 你需要用到什么东西的时候就用help直接去get就可以了
想养一只猫
2017-09-07
打赏
举报
回复
BaseQuickAdapter是什么类,没怎么见过
Android 九宫图GridView及继承
Base
Adapter
实现
NULL 博文链接:https://2528.iteye.com/blog/1130228
LCRapidDevelop-master
# RapidDevelop-Android快速开发框架 - 框架持续更新中 - 这个框架是从平时项目里用的比较多的框架里整合而来 - 对本项目感兴趣的可以一起研究喜欢的朋友欢迎star - 同时也欢迎大家的宝贵意见issues - 如果大家对MVP模式的开发 网络爬虫以及缓存策略感兴趣的话可以看看我最新写的[Freebook](https://github.com/80945540/FreeBook) - 邮箱:mychinalance@gmail.com - [API地址](http://mylance.top/index.html) - [下载APK](http://fir.im/LCRapidDevelop) ###[English](README_EN.md) -------- ##功能说明 - 异常崩溃统一管理 - retrofit rxjava okhttp rxcache------------------------------网络请求以及网络缓存 - Demo采用MVP模式开发------------------------------------数据逻辑复用,便于维护升级 - 下拉刷新 上拉
加载
及自动
加载
---------------------------实现监听方便快捷 - RecyclerView设配器------------------------------------------再也不需要写ViewHolder - RecyclerView item
加载
动画--------------------------------多种动画效果一行代码解决 - 页面状态统一管理
加载
中 无数据 无网络-------------所有页面均可添加 -
图片
显示与缓存 GIF
图片
显示 - Tab+Fragment快速实现 - 视频播放(仿QQ空间,秒拍等List播放) -------- ##效果图展示       -------------- ##
使用
说明 导入 lcrapiddeveloplibrary 到项目 在 build.gradle 的 dependencies 添加: dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') .... compile project(':lcrapiddeveloplibrary') } ##轻松实现异常统一管理 MyApplication
里面
初始化就可以了 ``` public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); //初始化异常管理工具 Recovery.getInstance() .debug(true)//关闭后 在错误统一管理页面不显示异常数据 .recoverInBackground(false) .recoverStack(true) .mainPage(WelcomeActivity.class)//恢复页面 .init(this); } } ``` ##轻松实现 状态页面 下拉刷新 自动
加载
item动画 首先layout.xml
里面
的编写啦 列表页面基本都是这个套路 ``` <!--ProgressActivity用于状态页的控制 比如
加载
中 网络异常 无数据 适合任何页面-->
<!--SpringView下拉刷新-->
``` 然后就是Activity
里面
的编写了 这个例子里
使用
MVP模式编写感兴趣的看我最新写的[Freebook](https://github.com/80945540/FreeBook) ``` public class ListvViewActivity extends AppCompatActivity implements
Base
Quick
Adapter
.RequestLoadMoreListener,SpringView.OnFreshListener,SchoolListView { RecyclerView mRecyclerView; ProgressActivity progress; private Toolbar toolbar; private
Base
Quick
Adapter
m
Quick
Adapter
; private int PageIndex=1; private SpringView springView; private SchoolListPresent present; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_listv_view); initView(); } private void initView() { present = new SchoolListPresent(this); mRecyclerView = (RecyclerView) findViewById(R.id.rv_list); springView = (SpringView) findViewById(R.id.springview); //设置下拉刷新监听 springView.setListener(this); //设置下拉刷新样式 springView.setHeader(new RotationHeader(this)); //springView.setFooter(new RotationFooter(this));mRecyclerView内部集成的自动
加载
上啦
加载
用不上 在其他View
使用
progress = (ProgressActivity) findViewById(R.id.progress); //设置RecyclerView的显示模式 当前List模式 mRecyclerView.setLayoutManager(new LinearLayoutManager(this)); //如果Item高度固定 增加该属性能够提高效率 mRecyclerView.setHasFixedSize(true); //设置页面为
加载
中.. progress.showLoading(); //设置适配器 m
Quick
Adapter
= new ListView
Adapter
(R.layout.list_view_item_layout,null); //设置
加载
动画 m
Quick
Adapter
.openLoadAnimation(
Base
Quick
Adapter
.SCALEIN); //设置是否自动
加载
以及
加载
个数 m
Quick
Adapter
.openLoadMore(6,true); //将适配器添加到RecyclerView mRecyclerView.set
Adapter
(m
Quick
Adapter
); //设置自动
加载
监听 m
Quick
Adapter
.setOnLoadMoreListener(this); //请求网络数据 present.LoadData(PageIndex,12,false); } //自动
加载
@Override public void onLoadMoreRequested() { PageIndex++; present.LoadData(PageIndex,12,true); } //下拉刷新 @Override public void onRefresh() { PageIndex=1; present.LoadData(PageIndex,12,false); } /* * MVP模式的相关状态 * * */ @Override public void showProgress() { progress.showLoading(); } @Override public void hideProgress() { progress.showContent(); } @Override public void newDatas(List
newsList) { //进入显示的初始数据或者下拉刷新显示的数据 m
Quick
Adapter
.setNewData(newsList);//新增数据 m
Quick
Adapter
.openLoadMore(10,true);//设置是否可以下拉
加载
以及
加载
条数 springView.onFinishFreshAndLoad();//刷新完成 } @Override public void addDatas(List
addList) { //新增自动
加载
的的数据 m
Quick
Adapter
.notifyDataChangedAfterLoadMore(addList, true); } @Override public void showLoadFailMsg() { //设置
加载
错误页显示 progress.showError(getResources().getDrawable(R.mipmap.monkey_cry), Constant.ERROR_TITLE, Constant.ERROR_CONTEXT, Constant.ERROR_BUTTON, new View.OnClickListener() { @Override public void onClick(View v) { PageIndex=1; present.LoadData(PageIndex,12,false); } }); } @Override public void showLoadCompleteAllData() { //所有数据
加载
完成后显示 m
Quick
Adapter
.notifyDataChangedAfterLoadMore(false); View view = getLayoutInflater().inflate(R.layout.not_loading, (ViewGroup) mRecyclerView.getParent(), false); m
Quick
Adapter
.addFooterView(view); } @Override public void showNoData() { //设置无数据显示页面 progress.showEmpty(getResources().getDrawable(R.mipmap.monkey_cry),Constant.EMPTY_TITLE,Constant.EMPTY_CONTEXT); } } ``` ##轻松实现视频列表播放 列表部分和上面的一样就不说了,我这边主要描叙视频播放的部分 是在不懂得可以clone到本地仓库跑一边 item_layout.xml ```
<
ImageView
android:id="@+id/video_list_item_image" android:layout_width="100dp" android:layout_height="70dp" android:src="@mipmap/def_head"/>
``` 然后就是
adapter
里面
对视频控件的赋值处理 ``` public class VideoLisView
Adapter
extends
Base
Quick
Adapter
<VideoListDto> { public VideoLisView
Adapter
(int layoutResId, List<VideoListDto> data) { super(layoutResId, data); } public VideoLisView
Adapter
(List<VideoListDto> data) { super(data); } public VideoLisView
Adapter
(View contentView, List<VideoListDto> data) { super(contentView, data); } @Override protected void convert(
Base
ViewHolder helper, VideoListDto item) { helper.setText(R.id.video_list_item_text_title,item.getTitle()).setText(R.id.video_list_item_text_context,item.getIntroduction()); //
Glide
加载
图片
并且支持gif动图
Glide
.with(mContext) .load(item.getPictureUrl()) .crossFade() .placeholder(R.mipmap.def_head) .into((
ImageView
) helper.getView(R.id.video_list_item_image)); //对视频的赋值 添加视频播放地址(
使用
原地址 .mp4之类的 这个要注意)和标题 ((JCVideoPlayerStandard)helper.getView(R.id.video_list_item_playr)).setUp(item.getAppVideoUrl(),item.getTitle());
Glide
.with(mContext) .load(item.getPictureUrl()) .crossFade() .placeholder(R.mipmap.main_mini_m) .into((((JCVideoPlayerStandard) helper.getView(R.id.video_list_item_playr)).thumb
ImageView
)); } } ``` ###Tab+Fragment快速实现 还是原来的配方 layout.xml ``` <?xml version="1.0" encoding="utf-8"?>
<!--显示头部滑块--> <FrameLayout android:id="@+id/tab" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#fff" />
``` 然后就是头部的xml编写了 ```
``` 完全可以按照自己想要的风格玩 下面表格为 可设置的属性 --------- |attr|描述| |:--|:-------| | stl_indicatorAlwaysInCenter | 如果设置为真,有源标签总是显示在中心(如报摊google app),默认的错误| | stl_indicatorWithoutPadding | 如果设置为true,画的指标没有填充选项卡中,默认的错误| | stl_indicatorInFront | 画前的指示器下划线,默认的错误| | stl_indicatorInterpolation | 行为的指标:“线性”或“智能”| | stl_indicatorGravity | 图的位置指示器:“底”或“前”或“中心”,默认“底”| | stl_indicatorColor | 标志的颜色| | stl_indicatorColors | 多种颜色的指标,可以设置每个选项卡的颜色| | stl_indicatorThickness | 厚度指标| | stl_indicatorWidth | 的宽度指标,默认“汽车”| | stl_indicatorCornerRadius | 圆角半径的指标| | stl_overlineColor | 顶线的颜色| | stl_overlineThickness | 顶线的厚度| | stl_underlineColor | 颜色的底线| | stl_underlineThickness | 厚度的底线| | stl_dividerColor| 颜色之间的分隔器选项卡| | stl_dividerColors| 多种颜色的选项卡之间的分隔器,可以设置每个选项卡的颜色| | stl_dividerThickness | 分频器的厚度| | stl_defaultTabBackground | 背景可拉的每个选项卡。 一般设置StateListDrawable| | stl_defaultTabTextAllCaps | 如果设置为真,所有选项卡标题大写,违约事实| | stl_defaultTabTextColor | 文本的颜色包括默认的选项卡| | stl_defaultTabTextSize | 文本包括默认的选项卡的大小| | stl_defaultTabTextHorizontalPadding| 文本布局填充默认的选项卡包括| | stl_defaultTabTextMinWidth| 最小宽度的标签| | stl_customTabTextLayoutId | 布局ID定义自定义选项卡。 如果你不指定一个布局,
使用
默认选项卡| | stl_customTabTextViewId | 文本视图ID在一个自定义选项卡布局。 如果你不与customTabTextLayoutId定义,不工作| | stl_distributeEvenly | 如果设置为真,每个选项卡都给出同样的重量,默认的错误| | stl_clickable | 如果设置为false,禁用选择选项卡单击,违约事实| | stl_titleOffset | 如果设置为“auto_center”,中间的幻灯片的位置选项卡中心将继续。 如果指定一个维度将抵消从左边缘,默认24 dp| | stl_drawDecorationAfterTab | 画装饰(指示器和线)绘图选项卡后,默认的错误| -------- 好了接下来就TabActivity ``` public class TabActivity extends AppCompatActivity { ViewGroup tab; ViewPager viewpager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_tab); initView(); } private void initView() { tab = (ViewGroup) findViewById(R.id.tab); viewpager = (ViewPager) findViewById(R.id.viewpager); //
使用
方才定义头部 tab.addView(LayoutInflater.from(this).inflate(R.layout.tab_top_layout, tab, false)); SmartTabLayout viewPagerTab = (SmartTabLayout) findViewById(R.id.viewpagertab); FragmentPagerItems pages = new FragmentPagerItems(this); //添加Fragment FragmentPagerItem.of("头部显示标题", "建立的fragment","需要传值的可以传Bundle") for (int i=0;i<4;i++) { pages.add(FragmentPagerItem.of("Tab"+i, TabFragment.class)); } FragmentPagerItem
Adapter
adapter
= new FragmentPagerItem
Adapter
( getSupportFragmentManager(), pages); viewpager.set
Adapter
(
adapter
); viewPagerTab.setViewPager(viewpager); } } ``` -------- ##特别感谢 - [JieCaoVideoPlayer](https://github.com/lipangit/JieCaoVideoPlayer) - [SpringView](https://github.com/liaoinstan/SpringView) - [SmartTabLayout](https://github.com/ogaclejapan/SmartTabLayout) - [
Base
RecyclerView
Adapter
Helper](https://github.com/CymChad/
Base
RecyclerView
Adapter
Helper) - [Recovery](https://github.com/80945540/Recovery)
Android RecyclerView
使用
Glide
加载
图片
时刷新数据
图片
闪烁
Android RecyclerView
使用
Glide
加载
图片
时刷新数据
图片
闪烁
使用
recyclerView.
adapter
.notifyDataSetChanged() 方法刷新已有数据导致
图片
闪烁 原
Glide
加载
代码 val requestOptions = RequestOptions().centerCrop() .format(DecodeFormat.PREFER_RGB_565) .priority(Priority.
RecycleView得
使用
之---
Base
Quick
Adapter
---
加载
图片
Demo (适用于 单一的
图片
列表)
包括: a。
加载
列表 b。分割线 c。 数据为空时空布局 d。动画Item e。条目点击事件。1. 项目的Gradle 中引入 //更新超级适配器版本。 implementation 'com.github.CymChad:
Base
RecyclerView
Adapter
Helper:2.9.22'2. 布局文件。 a。 主文件布局<LinearLayout xmlns...
图片
加载
错乱,
Glide
无法设置Tag解决方式
因为
Adapter
对View的复用以及
图片
网络请求的耗时问题有时候在快速滑动且网络不佳的情况下会出现
图片
加载
错乱。 即滑动到屏幕内发出网络请求,但并未请求完成就已滑出屏幕,待到请求完成时,就
加载
到了其它ItemView上。 常用的做法是将uri设置为
ImageView
的tag例如: String title = dataBean.getTitle();...
Android
80,472
社区成员
91,384
社区内容
发帖
与我相关
我的任务
Android
移动平台 Android
复制链接
扫一扫
分享
社区描述
移动平台 Android
android
android-studio
androidx
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章