首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何动态获取和比较android中两张图片的图片资源?

在Android中,可以使用以下步骤来动态获取和比较两张图片的图片资源:

  1. 获取图片资源:可以通过以下方法获取图片资源:
    • 从资源文件中获取:使用getResources().getDrawable()方法,传入资源ID来获取图片资源。
    • 从文件中获取:使用BitmapFactory.decodeFile()方法,传入文件路径来获取图片资源。
    • 从网络中获取:使用网络请求库(如OkHttp、Volley等)发送请求获取图片资源。
  • 比较图片资源:可以使用以下方法来比较两张图片的资源:
    • 比较像素值:将两张图片转换为Bitmap对象,然后逐像素比较它们的RGB值或灰度值。可以使用Bitmap.getPixel()方法获取像素值,并使用位运算或算术运算来比较。
    • 比较哈希值:将两张图片转换为哈希值,然后比较它们的哈希值。可以使用一些哈希算法(如MD5、SHA-1、Perceptual Hash等)将图片转换为唯一的哈希值,然后比较这些哈希值。

以下是一些示例代码,演示如何动态获取和比较两张图片的图片资源:

代码语言:txt
复制
// 获取图片资源
Drawable drawable1 = getResources().getDrawable(R.drawable.image1);
Bitmap bitmap2 = BitmapFactory.decodeFile("/path/to/image2.jpg");
// 从网络获取图片资源
RequestQueue queue = Volley.newRequestQueue(context);
ImageRequest request = new ImageRequest(url, new Response.Listener<Bitmap>() {
    @Override
    public void onResponse(Bitmap response) {
        // 获取到网络图片资源
    }
}, 0, 0, null, null);
queue.add(request);

// 比较图片资源
boolean isSame = compareImages(drawable1, bitmap2);

// 比较像素值
private boolean compareImages(Drawable drawable, Bitmap bitmap) {
    Bitmap bitmap1 = ((BitmapDrawable) drawable).getBitmap();
    if (bitmap1.getWidth() != bitmap.getWidth() || bitmap1.getHeight() != bitmap.getHeight()) {
        return false; // 图片尺寸不同,直接返回false
    }
    for (int x = 0; x < bitmap1.getWidth(); x++) {
        for (int y = 0; y < bitmap1.getHeight(); y++) {
            if (bitmap1.getPixel(x, y) != bitmap.getPixel(x, y)) {
                return false; // 像素值不同,直接返回false
            }
        }
    }
    return true; // 图片相同,返回true
}

// 比较哈希值
private boolean compareImages(Bitmap bitmap1, Bitmap bitmap2) {
    String hash1 = calculateHash(bitmap1);
    String hash2 = calculateHash(bitmap2);
    return hash1.equals(hash2);
}

private String calculateHash(Bitmap bitmap) {
    // 使用哈希算法计算图片的哈希值
    // 返回哈希值的字符串表示
    // 示例代码略
    return "";
}

以上是一个简单的示例,展示了如何动态获取和比较Android中两张图片的图片资源。根据实际需求,你可以根据这个示例进行修改和扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

android 如何获取手机图片、视频、音乐

android 开发,很多时候,我们会需要调用到用户本机照片、视频或者是音乐让用户选择,来进行我们APP对应操作。...intent.setType(“audio/*”); //选择音频 10 11 //intent.setType(“video/*”); //选择视频 (mp4 3gp 是android...支持视频格式) 12 13 //intent.setType(“video/*;image/*”);//同时选择视频图片 14 startActivityForResult...举个例子,我要打开音乐,而我手机 同时 有 天天动听 酷狗,那么它就会提示我,用酷狗还是天天动听。...还一种方法是,默认直接打开: startActivityForResult(photoPickerIntent,1); 这种方法有时候会显示不出来,原因是,程序运行时候,检测到本机有多个音乐或者图片总体类型

1.7K50

第131期:flutter资源图片

**/ 资源绑定 Asset bundling flutter应用资源必须包含在应用,同时,每个资源都需要在pubspec.yaml文件中指定相应路径。资源之间顺序无关紧要。...但是通常建议是:通过使用DefaultAssetBundle组件来获取当前buildContextAssetBundle。...AssetImage知道如何将逻辑请求资源映射到与当前设备像素比率最匹配资源上。为了使此映射正常工作,应根据特定目录结构排列资产,例如: .../image.png ......')); 加载依赖包图片 想要加载依赖包图片,我们需要将包名称传递给AssetImage对象。...想要加载这些图片,我们需要这样使用: return const AssetImage('icons/heart.png', package: 'my_icons'); 最后 资源图片内容这里仅仅描述了一些基本概念用法

1.4K20

【编程基础】Android如何获取资源尺寸?

Android为了实现不同屏幕适配,经常会用到在不同dimen.xml文件对于同一dimen ID定义不同大小,然后在代码通过getDimension函数来获取,下面就来说说几种getDimension...getDimension()是基于当前DisplayMetrics进行转换,获取指定资源id对应尺寸。文档里并没说这里返回就是像素,要注意这个函数返回值是float,像素肯定是int。...getDimensionPixelOffset()与getDimension()功能类似,不同是将结果转换为int,并且偏移转换(offset conversion,函数命名offset是这个意思...getDimensiongetDimensionPixelOffset功能类似,都是获取某个dimen值,但是如果单位是dp或sp,则需要将其乘以density,如果是px,则不乘,并且getDimension...我用手机density是2.0所以所以会乘以2。

2.4K70

Android 通过API获取数据库图片文件方式

Overview 今天复习了一下Android 如何将我们数据库图片获取出来,并且将其转换为bitmap进行显示。...API 开发 这里我为了开发方便,所以所使用API比较简陋。但是按照国际惯例我们先来看一下API方面的源代码。 我个人比较喜欢json所以我们将所有的端口转换为JSON。...然后我们看一下如何返回我们图片数据: // GET: api/Pictures public object GetPictures() { var showData = db.Pictures.ToList...这样我们API基础部分就完成了。 Android 如何操作图片 首先我们显示获取我们网络资源。...json数据了,json数据解析就需要根据需求自定义了 以上这篇Android 通过API获取数据库图片文件方式就是小编分享给大家全部内容了,希望能给大家一个参考。

6K20

Android 拍照选择图片并上传功能实现思路(包含权限动态获取)

; //Android 路径辅助类 public class PathHelper { //适配api19以下(不包括api19),根据uri获取图片绝对路径 public static String...{ // api < 19 return getRealPathFromUriBelowAPI19(context, uri); } } /** * 适配api19以下(不包括api19),根据uri获取图片绝对路径...Context context, Uri uri) { return getDataColumn(context, uri, null, null); } /** * 适配api19及以上,根据uri获取图片绝对路径...Uri,直接获取图片对应路径 filePath = uri.getPath(); } return filePath; } private static String getDataColumn(Context...总结 以上所述是小编给大家介绍Android 拍照选择图片并上传功能实现思路(包含权限动态获取),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家

2.1K20

基于Android获取资源idurl方法总结

一、获取android工程里面的各种资源id; 1.1 string型 比如下面: << string name=”OK” 客户端请求成功 << / string //string资源...mipmap文件夹下或者drawable文件夹下面的:比如ic_launcher.png // mipmap文件夹下名称为ic_launcher图片id //mipmap资源id int...", "layout", getPackageName()); 二、获取Android系统里面的资源id //获取系统里资源id android.R.drawable.ic_menu_share int...获取Android工程资源Uri路径,一般是图片,res或者asset下 //*获取Res资源url ContentResolver.SCHEME_ANDROID_RESOURCE*/ Uri uri...("file:///android_asset/" + "qq.png"); 以上这篇基于Android获取资源idurl方法总结就是小编分享给大家全部内容了,希望能给大家一个参考。

2.4K30

Android图片大小屏幕密度关系讲解

Android手机适配是非常让人头疼一件事,尤其是图片android为了做到是适配提供了很多文件夹来存放不同大小图片,比如:drawable-ldpi、drawable-mdpi、drawable-hdpi...、drawable-xhdpi、drawable-xxhdpi等,其实同一张内容图片放到上面不同文件夹是有区别的,可能你会问:如果在上述各个文件夹中都放置一张内容相同,尺寸不同图片,那么系统会选择加载哪一张图片呢...不同设备有不同显示效果,这个设备硬件有关,一般我们为了支持WVGA、HVGAQVGA 推荐使用这个,不依赖像素。 dp: dip是一样 px: pixels(像素)....不同设备显示效果相同,一般我们HVGA代表320x480像素,这个用比较多。...图片放在drawable,等同于放在drawable-mdpi,原因为:drawable目录不具有屏幕密度特性,所以采用基准值,即mdpi 图片放在某个特定drawable,比如drawable-hdpi

1K60

如何快速获取一个网站所有资源 如何快速获取一个网站所有图片 如何快速获取一个网站所有css

今天介绍一款软件,可以快速获取一个网站所有资源,图片,html,css,js...... 以获取某车官网为例 我来展示一下这个软件功能....输入网站地址网站要保存文件夹 如果网站名称后我们可以扫描一下网站, 以便我们更好筛选资源,剔除不要链接,添加爬取得链接 在这里也可以设置爬去链接深度广度,相邻域名, 设置好了这些,就可以点击...Copy按钮了 接下来就会看到完整爬取过程,当前爬取链接,爬取结果 可以看到那些错误,那些跳过了,还有文件类型,页面的Title,文件大小....再爬取过程 你可以再开启一个软件窗口,进行另一个个爬取任务, 这个软件其他菜单,这个工具还是很强大,可以自定义正则表达式来过来url,资源,还可以把爬取任务保存起来,以便再次使用, 还可以设置代理...爬取完成后,会有一个爬取统计 下载了多少文件,多少MB 进入文件夹查看下载文件 直接打开首页 到此,爬取网站就结束了,有些网站资源使用是国外js,css,速度会有些差异,但效果都是一样.

3.8K10

直播带货小程序源码,商品详情页是如何获取html图片

在搭建直播带货小程序源码过程,需要为商品构建详情页,而商品页图片是要通过html获取并展示到本地,那么这个过程是如何实现?...2、添加点击事件监听android与html交互接口: mWebView.addJavascriptInterface(mOpenImageJavaInterface, "imagelistener...");     } }); 3、本地利用正则解析html图片集合: } /*返回html图片集合*/ public static List returnImageUrlsFromHtml...");         return null;     }     return imageSrcList; } 4、实现本地对应html点击方法,并跳转画廊展示图片: @android.webkit.JavascriptInterface...商品详情页是如何获取html图片并在本地展示过程。

1.3K20

Element 图片预览时上一张下一张箭头如何调整到图片范围以内

最近在做一个文案管理系统,主要为公司投放准备一个素材库,在做图片预览时领导提了出了一点要求:预览图片上一张下一张时箭头必须在图片范围以内,以便于运营人员操作。...大家请看,之前效果是这样: 上面预览效果为el-image组件自带点击预览,功能倒是达到效果了,不足就是这两个箭头离图片太远了,甚至都不容易被发现,理想效果应该是这个样子: 刚开始想思路是...:根据图片地址动态去生成一个img,在图片加载完成后获取图片宽度,然后结合当前窗口宽度来调整两个箭头位置 。...后面发现其实这些都是手机端截图,可以统一给到一个宽度,保证可以看到清就可以了,于是有了下面这几行代码,就实现了上面的效果: .el-image-viewer__img{ width:420px

84830

常见Button使用详解

一、Button简介 Button使用起来比较容易,可以通过指定android:background 属性为按钮增加背景颜色或背景图片,如果将背景图片设为不规则背景图片,则可以开发出各种不规则形状按钮...如果需要让按钮背景颜色、背景图片随用户动作动态改变,则可以考虑使用自定义Drawable对象来实现,该部分内容会在高级开发部分进行详细讲解。... 上界面布局第一个按钮是一个普通按钮; 第二个按钮通过background属性配置了背景图片,因此该按钮将会显示为背景图片形状按钮; 第三个按钮综合了文字显示背景图片...通过上面的示例,大体知道如何创建Button,那么接下来通过一个综合示例来继续学习如何使用ButtonEditText这两个组件。...运行程序,分别在用户名输入框密码输入框输入相应信息,再点击登录按钮,可以看到下图所示界面效果。 ?

1.2K100

来自一位五年Android工程师APK体积优化一些总结

svg使用与优化 Tint着色器使用与优化 资源打包配置优化 动态打包配置优化 移除无用资源(物理与非物理删除) 代码混淆 webp转换(api等级18) 资源混淆 这个需要api等级最低为...Tint着色器使用与优化 大家在开发时候不知道有没有过这种体验!在使用状态选择器时候,需要使用两张一样颜色不同相同图片?...动态打包配置 其实说到动态库的话,基本上就是.so引入动态库,其实这里有很大优化空间!其实你可以解压比较大型项目,其实没有那么多so文件类型! 平时我们开发时候,基本上都是这么写!...其实我个人觉得,除非引导图等...比较图,否则没有必要使用webp!个人感觉而已。。。 8. 资源混淆 关于资源混淆基本上是美团微信两大方案,我还在整理! 微信方案开源了!...需要展开架构学习笔记导图加群免费获取 Android架构设计大群(185873940) ?

1.6K31

Android包体积优化(常规、进阶、极致)

打包前,即减少打包文件,比如无用资源、代码; 打包,对打包产物进行压缩,比如资源文件、So文件; 关键词:减少、压缩。...5.so动态加载 前面已经做了so文件缩减,但是可能so文件占比还是比较大,可以考虑除了首次启动外so文件做动态下发。...4.图片网络化 即把图片上传到服务器,通过动态下载方式减少包体积,弊端就是首次加载时候依赖网络环境,对加载速度、流量需要做一个平衡。...图片可以预加载,但是流量消耗是无法避免了,如果比较在意流量指标,需要权衡了。 5.DebugItem DebugItem 里面主要包含两种信息: 调试信息。函数参数变量所有的局部变量。...7.图片着色器 针对同图不同色处理,可以使用tint,比如原本是一个黑色返回icon,现在另一个页面要用白色了,就不需要两张图了,而是使用tint来修改为白色即可。

95730
领券