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

如何在android的ActivityResult()上获取图片的实际大小

在Android的ActivityResult()上获取图片的实际大小,可以通过以下步骤实现:

  1. 首先,确保你已经在AndroidManifest.xml文件中添加了相应的权限,以便访问设备的存储空间:
代码语言:txt
复制
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  1. 在你的Activity中,使用以下代码来启动图库或相机应用,并获取选中的图片或拍摄的照片:
代码语言:txt
复制
private static final int REQUEST_IMAGE = 1;

private void openGallery() {
    Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
    startActivityForResult(intent, REQUEST_IMAGE);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    
    if (requestCode == REQUEST_IMAGE && resultCode == RESULT_OK && data != null) {
        Uri imageUri = data.getData();
        String imagePath = getImagePath(imageUri);
        int imageSize = getImageSize(imagePath);
        // 在这里可以使用获取到的图片路径和大小进行后续操作
    }
}

private String getImagePath(Uri uri) {
    String[] projection = {MediaStore.Images.Media.DATA};
    Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
    if (cursor != null) {
        int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        cursor.moveToFirst();
        String imagePath = cursor.getString(columnIndex);
        cursor.close();
        return imagePath;
    }
    return null;
}

private int getImageSize(String imagePath) {
    if (imagePath != null) {
        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inJustDecodeBounds = true;
        BitmapFactory.decodeFile(imagePath, options);
        return options.outWidth * options.outHeight;
    }
    return 0;
}
  1. 上述代码中,openGallery()方法用于打开图库应用,你也可以根据需要修改为打开相机应用。onActivityResult()方法用于处理返回的结果,获取选中的图片的Uri,并通过getImagePath()方法获取图片的实际路径。然后,通过getImageSize()方法获取图片的实际大小,以像素为单位。
  2. 最后,你可以根据获取到的图片路径和大小进行后续操作,例如显示在ImageView中或上传到服务器等。

请注意,以上代码仅涉及获取图片的实际大小,如果需要进行其他操作,例如压缩、裁剪等,你可以根据具体需求进行相应的处理。

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

相关·内容

javascript 快速获取图片实际大小宽高

javascript 快速获取图片实际大小宽高 简陋获取图片实际宽高方式 // 图片地址 var img_url = '13643608813441.jpg' // 创建对象 var img =...宽高都是0这个结果很正常,因为图片相关数据都没有被加载前它宽高默认就是0,我们需要它加载完所有的相关数据再获取宽和高。...通过onload就能获取图片宽高了。但onload大一点图通常都比较慢,不实用,但只要图片被浏览器缓存,那么图片加载几乎就不用等待即可触发onload,我们要是占位符。...从缓存里读取图片宽高不用说,非常方便快捷,今天我们要解决是没有缓存而又快速相比onload更快方式去获取图片宽高。...这是一张2560 * 1600大小图片,各浏览器执行结果都能看到通过快速获取图片大小方法几乎都在200毫秒以内,而onload至少五秒以上,这差别之大说明快速获取图片宽高非常实用。

5.5K10
  • Imageloader-获取图片需要显示大小

    说一下通过线程加载图片过程: 首先根据ImageView获得适当压缩宽和高 然后计算inSampleSize,用于压缩图片 接着将图片添加到缓存 最后mUIHandler发送消息更新图片。...第一步 根据ImageView获得适当压缩宽和高 因为要获取到压缩宽和高,方法只能返回一个值,所以我们可以采用内部类方式将宽和高设置为变量,返回此类对象即可。.../** * 压缩宽和高 */ private class ImageSize{ int width ; int height; }...计算压缩宽和高方法 /** * 根据imageView获取适当压缩宽和高 * @param imageView */ private ImageSize...imageSize.height = height; return imageSize; } /** * 为了兼容低版本,没有采用@Target()方式

    70130

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

    android 开发中,很多时候,我们会需要调用到用户本机照片、视频或者是音乐让用户选择,来进行我们APP对应操作。...intent.setType(“audio/*”); //选择音频 10 11 //intent.setType(“video/*”); //选择视频 (mp4 3gp 是android...支持视频格式) 12 13 //intent.setType(“video/*;image/*”);//同时选择视频和图片 14 startActivityForResult...,我demo 里设置是 Select,弹出这个框,作用是让用户选择,基于本机手机已经安装了,能够打开当前文件 应用。...还一种方法是,默认直接打开: startActivityForResult(photoPickerIntent,1); 这种方法有时候会显示不出来,原因是,程序运行时候,检测到本机有多个音乐或者图片总体类型

    1.7K50

    涨姿势——教你如何获取图片文字

    “ 涨姿势——教你如何获取图片文字” 同事写了一句很美丽句子,我叫他发了一下给我,我想收藏,结果他却截图,截图,截图 给我,我很方…… 看了看图片,想到了现在图片识别,我没有什么好方法能快速识别图片文字...1— 我们想法总是会使我们前进 那我们目的就非常清楚,我们需要做就是将图片文字提取出来,然后得到我们文字信息。...接口: https://aip.baidubce.com/rest/2.0/ocr/v1/webimage 其他材料: 一张带有文字图片。...02— 代码实现 获取到接口,那接下来就是去实现它: 首先来解决一下 access_token 我们需要使用到另外一个接口, access_token= 'https://aip.baidubce.com...,那我们接下来拿出我们准备图片获取图片文字代码: file = open("图片地址", 'rb') image = file.read() file.close() webimage=requests.post

    3.1K50

    Android获取应用程序大小 博客分类: Android AndroidOSF#Security

    今天碰到个问题,想获取某个已安装大小,没找到合适方法。...后来想直接计算/data/app和/system/app里面的apk大小,可是有时候会碰到权限问题,需要root才可以获取大小。       ...再后来,我想起系统设置里面有一个应用程序管理,它里面列出了所有程序占用空间大小、数据大小和缓存大小。恩,这个就是突破口。       ...以前写过一篇获取其他包Context ,这个东西是真有用,这个结合反射,可以做很多神奇事情,比如今天这个。       ...获取到PackageStats对象,就可以从中获取到应用程序占用空间大小、数据大小和缓存大小。       另,这毕竟只是hack code,不可能通用。

    91620

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

    Android手机适配是非常让人头疼一件事,尤其是图片android为了做到是适配提供了很多文件夹来存放不同大小图片,比如:drawable-ldpi、drawable-mdpi、drawable-hdpi...例如:图片大小为80×80像素。这样处理问题在于,如果在一个每英寸点数(dpi)更高新显示器运行该程序,则用户界面会显得很小。在有些情况下,用户界面可能会小到难以看清内容。...由此我们采用与分辨率无关度量单位来开发程序就能够解决这个问题。Android应用开发支持不同度量单位。 1.相关概念 屏幕密度:指就是单位英寸面积像素点数,与分辨率是两个不同概念。...ldpi: 屏幕密度为120手机设备 mdpi: 屏幕密度为160手机设备(此为baseline,其他均以此为基准,在此设备,1dp = 1px) hdpi: 屏幕密度为240手机设备 xhdpi...,TextView 字号最好使用 sp 做单位,而且查看TextView源码可知Android默认使用sp作为字号单位。

    1.1K60
    领券