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

从drawable中获取原始大小的位图

,可以通过以下步骤实现:

  1. 首先,需要获取到Drawable对象,可以使用ContextCompat.getDrawable()方法来获取。例如,如果你的Drawable资源位于R.drawable.my_image,可以使用以下代码获取Drawable对象:
代码语言:txt
复制
Drawable drawable = ContextCompat.getDrawable(context, R.drawable.my_image);
  1. 接下来,需要将Drawable对象转换为Bitmap对象。可以使用BitmapFactory类的decodeResource()方法来实现。例如:
代码语言:txt
复制
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.my_image);
  1. 现在,你已经得到了原始大小的位图。你可以使用bitmap对象进行进一步的处理,如显示在ImageView中、保存到本地等。

需要注意的是,以上方法获取的位图是原始大小的,即与Drawable资源的像素大小一致。如果你需要对位图进行缩放或其他处理,可以使用Bitmap类提供的方法来实现。

在腾讯云的相关产品中,可以使用腾讯云的图片处理服务来对获取的位图进行处理和存储。腾讯云的图片处理服务可以帮助你对图片进行裁剪、缩放、旋转等操作,并提供了丰富的参数和接口供开发者使用。你可以参考腾讯云图片处理服务的文档来了解更多详情:腾讯云图片处理服务

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

相关·内容

解决SVN无法原始内容仓库安装问题

在使用SVN(Subversion)进行版本控制时,有时会遇到无法原始内容仓库安装问题。这种问题通常会导致无法拉取分支或更新代码,可能会给开发过程带来不便。...本文将介绍一种解决这种问题方法,即清空本地SQLite数据库工作队列表(WORK_QUEUE),以恢复SVN正常功能。...问题描述在使用SVN创建分支后,尝试拉取分支代码时,可能会遇到以下错误信息:svn没有校验和记录,因此不能从原始内容仓库安装即使使用SVN清理工具进行清理,问题仍然存在。...解决方法以下是解决这个问题步骤:定位本地SVN工作副本在遇到问题项目目录,找到.svn隐藏目录,该目录存储了SVN元数据信息。通常情况下,这个目录位于项目根目录下。...清空WORK_QUEUE表数据在打开SQLite数据库,找到名为WORK_QUEUE表格,并清空其中所有数据。可以通过执行SQL命令 DELETE FROM WORK_QUEUE; 来实现。

17010

在keras 获取张量 tensor 维度大小实例

在进行keras 网络计算时,有时候需要获取输入张量维度来定义自己层。但是由于keras是一个封闭接口。因此在调用由于是张量不能直接用numpy 里A.shape()。这样形式来获取。...这里需要调用一下keras 作为后端方式来获取。当我们想要操作时第一时间就想到直接用 shape ()函数。其实keras 真的有shape()这个函数。...我们想要是tensor各个维度大小。因此可以直接调用 int_shape(x) 函数。这个函数才是我们想要。...()a 数据类型可以是tensor, list, array a.get_shape()a数据类型只能是tensor,且返回是一个元组(tuple) import tensorflow as...tensor 维度大小实例就是小编分享给大家全部内容了,希望能给大家一个参考。

2.9K20

损坏手机获取数据

比如粉碎、射击手机或是直接扔进水里,但取证专家仍然可以找到手机里证据。 如何获取损坏了手机数据呢? ?...然后,他们自己或外部专家进行了数据提取,以此测试,提取数据是否与原始数据完全匹配,并且没有任何变化。 方法 为了使研究准确,研究人员不能将大量数据直接打包到手机上。...要知道,在过去,专家们通常是将芯片轻轻地板上拔下来并将它们放入芯片读取器来实现数据获取,但是金属引脚很细。一旦损坏它们,则获取数据就会变得非常困难甚至失败。 ?...图2:数字取证专家通常可以使用JTAG方法损坏手机中提取数据 数据提取 几年前,专家发现,与其将芯片直接电路板上拉下来,不如像导线上剥去绝缘层一样,将它们放在车床上,磨掉板另一面,直到引脚暴露出来...数据提取完成后,Ayers和Reyes-Rodriguez使用了八种不同取证软件工具来提取原始数据、生成联系人、位置、文本、照片和社交媒体数据等。

10K10

安卓 Bitmap 和 Drawable 使用

,然而,如果你打算把调整过大小图片缓存到磁盘上,设置为2也能够很有效节省缓存空间....Bitmap 在内存当中占用大小其实取决于: 色彩格式,前面我们已经提到,如果是 ARGB8888 那么就是一个像素4个字节,如果是 RGB565 那就是2个字节 原始文件存放资源目录(是 hdpi...通道 ARGB_4444 这个API 13开始不建议使用,因为质量太差 Drawable 使用 BitmapDrawable 表示一张图片。...和 Bitmap 区别 Bitmap - 称作位图,一般位图文件格式后缀为 bmp,当然编码器也有很多如RGB565、RGB888。...技巧:EditText 在右侧添加删除图标 更换 radiobutton 图片在 xml 很好设置,但对于初学者如何在代码设置还是不容易找

1.1K10

duilib获取控件位置或者大小不对可能原因

duilib初学者可能总会有这样疑问:为什么我获取控件位置或者大小和我想象不一样?...位置不一样可能原因: 1.xml中直接配置位置和实际显示之后位置确实是不一样.xml设置位置(相对或绝对)都是基于他父控件左上角.而实际显示之后获取位置,是基于整个客户区左上角; 2....控件位置计算都是在WM_PAINT消息处理中进行,在这个消息处理之前,获取位置都是旧; 大小不一样可能原因: 1.参考上面第2条,大小计算也是在WM_PAINT消息处理中进行; 2.有其他你忽略干扰项....比如子控件采用相对布局时父控件有inset,或者父控件大小有限; 3.可能只是因为其他控件遮盖或者超出了父控件而不显示,看起来大小不对;

1.7K40

为何大厂图片不会OOM?

相应输入流解析出来bitmap信息; ?...() 方法获取 该Bitmap 相关字节大小,比如以下代码: ?...在回头看我们上面那个问题,为什么图片原始宽高跟bitmap宽高不等,我们打印日志可知我们设备density=1.5 densityDpi=240,而图片放在drawable-mdpi , 该bitmap...assets 图片大小 我们知道,Android 图片不仅可以保存在 drawable 目录,还可以保存在 assets 目录下,然后通过 AssetManager 获取图片输入流。...获取option预加载bitmap大小,然后根据位图存储格式计算预加载bitmap大小,最后返回比较结果, 这里默认采用ARGB_8888所以✖️4; 如果预加载bitmap所占内存大小<=被复用

1.1K20

Android圆角头像工具类详解

name="CircleImageView"declare-styleable。...getXXXX取得我们在xml里定义参数值; // 获取边界宽度 mBorderWidth = a.getDimensionPixelSize( R.styleable.CircleImageView_border_size...返回就是我们最原始bitmap return ((BitmapDrawable) drawable).getBitmap(); } try { Bitmap bitmap; if (drawable...()); // 计算 // 圆形带边界部分(外圆)最小半径,取mBorderRect宽高减去一个边缘大小一半较小值(这个地方我比较纳闷为什么求外圆半径需要先减去一个边缘大小) mBorderRadius...mBorderOverlay) { // demo里始终执行 // 通过inset方法 // 使得图片显示区域mBorderRect大小上下左右内移边界宽度形成区域,查看xml边界宽度为2dp(3px

1K31

Android图片加载框架最全解析(八),带你全面了解Glide 4用法

位图 观察刚才加载网络图片效果,你会发现,点击了Load Image按钮之后,要稍微等一会图片才会显示出来。这其实很容易理解,因为网络上下载图片本来就是需要时间。...这里我们先创建了一个RequestOptions对象,然后调用它placeholder()方法来指定占位图,再将占位图资源id传入到这个方法。...实际上,使用Glide在大多数情况下我们都是不需要指定图片大小,因为Glide会自动根据ImageView大小来决定图片大小,以此保证图片不会占用过多内存从而引发OOM。...在onResourceReady()方法,我们就可以获取到Glide加载出来图片对象了,也就是方法参数传过来Drawable对象。...图片变换 图片变换意思就是说,Glide加载了原始图片到最终展示给用户之前,又进行了一些变换处理,从而能够实现一些更加丰富图片效果,如图片圆角化、圆形化、模糊化等等。

2.5K70

Bitmap图片压缩,大图加载防止OOM

读取位图尺寸和类型 BitmapFactory 类提供了几种用于各种来源创建 Bitmap 解码方法(decodeByteArray()、decodeFile()、decodeResource()等...[format,png#pic_center] 例如,如果您有一个可绘制位图资源,它在密度屏幕上大小为 48x48 像素,那么它在其他各种密度屏幕上大小应该为: 36x36 (0.75x) -...实测:1520 x 2688 大小为 334.28KB 图片,屏幕密度为480手机; 放在 drawable-xxdpi 下加载到 Bitmap 占用内存为 16343040(1520*2688*4...(加载到堆内存时已经缩放了大小了,.9图 会忽略此标志) inDensity:加载图片原始宽度,如果此密度与 inTargetDensity 不匹配,则在返回 Bitmap前会将它缩放至目标密度。...前面讲述计算 Bitmap 大小第二个例子,就是将相同图片加载放到不同 drawable-dpi 文件目录下去加载到内存 Bitmap 大小不同,其原因就是 inDensity 和 inTargetDensity

2.6K00

Bitmap图片压缩,大图加载防止OOM

在这里插入图片描述 前言 Android官网处理位图 和 高效加载大型位图 这两篇文章已经做了很明确指出了如何高效加载大图。...读取位图尺寸和类型 BitmapFactory 类提供了几种用于各种来源创建 Bitmap 解码方法(decodeByteArray()、decodeFile()、decodeResource()等...image 例如,如果您有一个可绘制位图资源,它在密度屏幕上大小为 48x48 像素,那么它在其他各种密度屏幕上大小应该为: 36x36 (0.75x) - 低密度 (ldpi) 48x48(1.0x...实测:1520 x 2688 大小为 334.28KB 图片,屏幕密度为480手机; 放在 drawable-xxdpi 下加载到 Bitmap 占用内存为 16343040(1520*2688*4...前面讲述计算 Bitmap 大小第二个例子,就是将相同图片加载放到不同 drawable-dpi 文件目录下去加载到内存 Bitmap 大小不同,其原因就是 inDensity 和 inTargetDensity

1.9K20

Android-Bitmap

而当我们通过代码,将这张图片加载进内存时,会先解析图片文件本身数据格式,然后还原为位图,也就是 Bitmap 对象,Bitmap 大小取决于像素点数据格式以及分辨率两个因素。...所以,一张 png 或者 jpg 格式图片大小,跟这张图片加载进内存所占用大小完全是两回事。但图片在内存大小和Bitmap大小相同 1.2.问题二: 如何计算图片在内存大小?...16位图像相比8位图像有较好色彩过渡,更加细腻,携带色彩信息可以更加丰富。其他位类同。 如果一个8位图像有10MB大小,它变成16时,大小就要翻一翻变成20MB。其他位类同。..., "获取Bitmap宽为:"+bitmap.getWidth()+"获取Bitmap高为:"+bitmap.getHeight() ); Log.e(TAG, "获取图片所在Drawable...()+"获取图片所在控件高为:"+mImageView.getHeight()); } 将图片放在drawable-xdip结果: ?

1.4K20

深入理解Glide(1)——Glide使用

在Android开发过程,我们常常需要涉及大量图片加载,图片加载框架设计,是Android高级开发工程师必备技能,本节将通过分析Glide图片加载框架,来学习如何设计一个图片加载框架。...2.load:重载方法,可传入图片地址Uri,本地资源id等 3.into:参数为一个ImageView或Taget对象 占位图设置 为了给用户更好体验,在图片还未加载出来时候,我们一般会设置一张占位图...//设置占位图 RequestOptions options = new RequestOptions().placeholder(R.drawable.ic_launcher_background...指定图片大小 Glide默认会根据ImageView大小决定图片大小,保证图片不会导致OOM,但我们还可以在加载时候就指定图片大小 RequestOptions options = new RequestOptions...true,那么就会不会回调到GlideTargetonResourceReady()方法了。

63940

Android入门教程 | res资源目录简介与shape绘制和使用

drawable/:位图文件(.png、.9.png、.jpg、.gif)或编译为以下可绘制对象资源子类型 XML 文件: 位图文件、九宫格(可调整大小位图)、状态列表、形状、动画可绘制对象、其他可绘制对象...mipmap/:适用于不同启动器图标密度可绘制对象文件。应用图标放这里。 mipmap后面跟着dpi类别,比如hdpi mdpi,里面的图标尺寸大小是不同。...可以参考默认图标的大小,来切App图标。如果要省事,可以用一个图标复制进各个目录。 layout/: 用于定义用户界面布局 XML 文件。放 layout 文件。...menu/: 用于定义应用菜单(如选项菜单、上下文菜单或子菜单) XML 文件。 raw/:需以原始形式保存任意文件。...比如位图文件(.png、.9.png、.jpg、.gif);或一些可绘制对象资源子类型 XML 文件(本文称为drawable文件)。

1.4K20

Bitmap 详解

获取内部宽/高 图片Drawable其内部宽高就是图片宽高 颜色Drawable没有内部宽高概念 内部宽高不等同于他大小,一般Drawable没有大小概念(作为View背景时...Bitmap: decodeFile 文件系统加载 通过Intent打开本地图片或照片 在onActivityResult获取图片uri 根据uri获取图片路径 根据路径解析bitmap...1时才会有效果,且采样率同时作用于宽和高;   当inSampleSize=1时,采样后图片为图片原始大小   当inSampleSize=2时,采样后图片宽高均为原始图片宽高1/2,这时像素为原始图片...true时,执行decodeXXX方法时,BitmapFactory只会解析图片原始宽高信息,并不会真正加载图片   BitmapFacpry.Options取出图片原始宽高(outWidth,...转换成drawable Drawable newBitmapDrawable = new BitmapDrawable(bitmap); 还可以BitmapDrawable获取Bitmap对象

2K20

android学习笔记----关于图形基本处理讲解

,在API 17之前通过反射获取 // 获取显示实际大小,而不减去任何窗口装饰或应用任何兼容性缩放因子。...样本大小是任一维度与解码位图单个像素相对应像素数。例如,inSampleSize == 4返回图像是原始宽度/高度1/4,像素数量1/16。...注意:并非所有Formats都直接支持所有位图配置,因此BitmapFactory返回位图可能位于不同bitdepth,和/或可能丢失了每像素alpha(例如,JPEG仅支持不透明像素)。...,在API 17之前通过反射获取 // 获取显示实际大小,而不减去任何窗口装饰或应用任何兼容性缩放因子。...文件夹设置得不对,那么获取值就不是这个,而是对应比例缩放 // 但是还是会因为机型屏幕改变其大小去显示(因为dpi每英寸像素密度不同) // 这就是可能出现获得bitmap.getwidth

58820

高效利用Bitmap

屏幕densityDpi值就是160 缩放系数 Options类存在一个inScaled参数,这个参数表示是否支持缩放,我们Options默然构造方法可以看到这个参数被初始化为了true,也就是说默认是支持缩放...关于缩放系数计算方法,其实我们在讲解如何计算内存Bitmap大小时已经介绍过了。缩放系数就是inTargetDensity除以inDensity。...也就是说,采样后大小等于原始大小除以采样率平方。官方文档规定,inSampleSize值应为2非负整数次幂(1,2,4,… ),否则会被系统向下取整并找到一个最接近值。...通过设置inSampleSize我们就能够将图片缩放到一个合理大小 4 Bitmap优化 1.获取图片原始宽高 通过将OptionsinJustDecodeBounds属性设为true后调用decodeResource...方法,可以实现不真正加载图片而只是获取图片尺寸信息 ?

67130

Android自定义AvatarImageView实现头像显示效果

1.2 实现   继承ImageView,复写了imageview四个setImage方法(为了更好兼容性),在setImageDrawable方法得到前景图片。...private int mBitmapWidth; // 位图宽度 private int mBitmapHeight; // 位图高度 private float mDrawableRadius;/...返回就是我们最原始bitmap return ((BitmapDrawable) drawable).getBitmap(); } try { Bitmap bitmap; if (drawable...布局实际大小,为方形 mBorderRect.set(0, 0, getWidth(), getHeight()); //计算 圆形带边界部分(外圆)最小半径,取mBorderRect宽高减去一个边缘大小一半较小值...mBorderOverlay) { //demo里始终执行 //通过inset方法 使得图片显示区域mBorderRect大小上下左右内移边界宽度形成区域 mDrawableRect.inset(

2.2K61
领券