Android动态批量加载Drawable中的图片
点击蓝字关注我们
前阵子因为项目原因,也一直在更新C#相关的东西,现在项目先告一段落,我们再回到Andriod这块,先说一下,最近的几篇更新最终都会围绕一个小程序来进行的知识点分解 。
目标
动态加载Drawable图片进行查看
还是按照惯例,我们先上实现效果
动态获取Drawable核心代码
public static List getImageResourable(Context context, String imgName) {List imgList = new ArrayList<>();Resources resources = context.getResources();String packagename= context.getPackageName();Field[] fields = R.drawable.class.getDeclaredFields();for (int i = 0; i < fields.length; i++) {fields[i].setAccessible(true);String name = fields[i].getName();if (name.contains(imgName)) {int resId = resources.getIdentifier(name, "drawable", packagename);Drawable drawable = resources.getDrawable(resId);imgList.add(drawable);}}return imgList;
}
代码实现
01
创建项目
我们新建一个项目RecyclerViewImage的项目,然后布局在activity_main.xml布局文件中加入一个ImageView和4个Button
02
创建imgdeal的类
创建一个imgdeal的类,把我们的核心代码加进去,getImageResourable方法第二个参数名称这块要注意,这里就是检查含有我们输入名称的文件进行加载
03
在Drawable中添加图片
将我们准备好的图片一张张的复制进Drawable中,重命名为img开头的,如下图
04
MainActivity的实现
定义参数
把布局文件中的imageview和4个按钮定义好,然后添加一个List
onCreate事件
@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//加载drawable中的img开头的图片资源mImageables=imgdeal.getImageResourable(this, "img");currentimgid=0;//在imageview中显示第一张资源图片imgv=findViewById(R.id.imgsrc);ShowImg(currentimgid);//第一张图片btnfirst=findViewById(R.id.btnfirst);btnfirst.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {currentimgid=0;ShowImg(currentimgid);}});//上一张按钮btnprev=findViewById(R.id.btnprev);btnprev.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {if (currentimgid > 0) {currentimgid--;}ShowImg(currentimgid);}});//下一张按钮btnnext=findViewById(R.id.btnnext);btnnext.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {if (currentimgid < mImageables.size() - 1) {currentimgid++;}ShowImg(currentimgid);}});//最后一张btnend=findViewById(R.id.btnend);btnend.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {currentimgid=mImageables.size() - 1;ShowImg(currentimgid);}});}
这样我们的动态加载Drawable图片就已经完成了。
-END-
Vaccae的往期经典
OpenCV
《C++ OpenCV案例实战---卡号获取》
《C++ OpenCV案例实战---卡片截取(附代码)》
《C++ OpenCV透视变换---切换手机正面图片》
《C++ OpenCV实战---获取数量》
《C++ OpenCV实战---利用颜色分割获取数量》
《OpenCV4Android NDK方式进行Canny边缘检测》
《OpenCV4Android NDK方式TesserartOCR实时进行识别》
《OpenCV4Android NDK级联方式实时进行人脸检测》
《OpenCV4Android NDK稠密光流调用》
《OpenCV4Android NDK背景消除建模(新Demo附源码)》
Android
《Android利用SurfaceView结合科大讯飞修改语音实别UI》
《Android关于语音识别的功能实现分析(一)---结构化思维》
《Android关于语音识别的功能实现分析(二)---语义解析》
《Android根据类生成签名字符串》
《Android碎片化布局fragment的实战应用》
《Android中RecyclerView嵌套RecyclerView》
《Android里用AsyncTask后的接口回调》
.Net C#
《C#自定义特性(Attribute)讲解与实际应用》
《C#根据类生成签名字符串(附DEMO下载地址)》
《C++创建动态库C#调用》
《C#与三菱PLC(型号FX2N)串口通讯类》
《C#开源跨平台机器学习框架ML.NET----二元分类情绪分析》
《C#开源跨平台机器学习框架ML.NET----结合SqlSugar进行多类分类》
数据库及其它
《Oracel存储过程写报表实战》
《Delphi轮播视频和图片程序(用于双屏显示程序)》
《SQL随机增加销售数据的脚本编写(附脚本下载地址)》
《SQL Server中With As的介绍与应用(三)--递归的实战应用》
《Oracle通过ODBC连接SQL Server数据库》
《Oracle利用row_number()over()方式解决插入数据时重复键的问题》
请扫码
给个关注
微卡智享
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
