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

如何从ImageView获取缩放的位图

从ImageView获取缩放的位图,可以通过以下步骤实现:

  1. 获取ImageView的Drawable对象:
代码语言:java
复制
Drawable drawable = imageView.getDrawable();
  1. 判断Drawable是否为BitmapDrawable类型:
代码语言:java
复制
if (drawable instanceof BitmapDrawable) {
    // 是BitmapDrawable类型,可以直接获取Bitmap对象
    Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();
} else {
    // 不是BitmapDrawable类型,需要将Drawable转换为Bitmap
    Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(bitmap);
    drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
    drawable.draw(canvas);
}
  1. 获取ImageView的缩放比例:
代码语言:java
复制
float scaleFactor = (float) drawable.getIntrinsicWidth() / (float) imageView.getWidth();
  1. 根据缩放比例获取缩放后的位图:
代码语言:java
复制
int scaledWidth = (int) (drawable.getIntrinsicWidth() / scaleFactor);
int scaledHeight = (int) (drawable.getIntrinsicHeight() / scaleFactor);
Bitmap scaledBitmap = Bitmap.createScaledBitmap(bitmap, scaledWidth, scaledHeight, true);

现在,scaledBitmap就是ImageView中显示的缩放后的位图。

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

相关·内容

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

/blog/2178415 缩放步骤: 1.获取图片分辨率,比如2400*3200(水平为宽,竖直为高) 2.获取手机分辨率,比如320*480 3.计算缩放比(图片宽除以手机分辨率宽,图片高除以手机分辨率高...,在API 17之前通过反射获取 // 获取显示实际大小,而不减去任何窗口装饰或应用任何兼容性缩放因子。...会根据设备屏幕密度,将这一数值转换为不同像素数量,那么对图片来说是如何操作呢?...,在API 17之前通过反射获取 // 获取显示实际大小,而不减去任何窗口装饰或应用任何兼容性缩放因子。...分辨率图就是bitmap.getWidth()=320. bitmap.getHeight()=200 // 如果drawable文件夹设置得不对,那么获取值就不是这个,而是对应比例缩放

64320
  • 如何Facebook获取流量?

    我认为有一点非常重要 - 像我们这样营销人员应该理解统计数据是如何工作,尤其是具有代表性数据。...我认为这个统计非常有意义,假设你是一个更多依赖于社交媒体网站,而你社交媒体获得流量不到20%,甚至低于15%,那么你可能有一些工作要做,以获得更多机会。...其中一个你可能听说过是Buzzfeed,去年他们发表了一个长篇大论,关于他们如何社交媒体获得70%以上流量,并声称他们不关心搜索,认为搜索优化毫无用处,现在没有人做SEO了,如此等等。...因此,性能(Performance)和交互度(Engagement)角度来衡量,Facebook流量属于较低层次。...04 第四点,吸引初次点击角度来分析,标题往往比内容更为关键。

    5.1K40

    ImageView属性和方法大全

    通过前面几期学习,TextView控件及其子控件基本学习完成,可以在Android屏幕上显示一些文字或者按钮,那么本期开始来学习如何进行图片展示,这就是涉及到另外一个非常重要控件家族,那就是ImageView...setScaleType(ImageView.ScaleType) 设置所显示图片如何适应ImageView大小 android:src setImageResource(int) 设置ImageView..., 缩放完成后将该图片放在ImageView中央。...fitEnd (ImageView.ScaleType.FIT_END ):保持纵横比缩放图片,直到该图片能完全显示在ImageView中(图片较长边长与ImageView相应边长相等),缩放完成后将该图片放在...为了控制ImageView显示图片,ImageView提供了如下方法。 setlmageBitmap(Bitmap bm):使用 Bitmap 位图设置该 ImageView 显示图片。

    2.5K90

    如何列表中获取元素

    思考一下: 对于URAM是否也可以通过设置独立地址空间将其配置为两个独立单端口RAM? 观察URAM物理管脚,不难发现A/B端口都有相应地址、使能、读写控制信号。...与BRAM不同是URAM读写使能信号是同一个管脚RDB_WR_A/B,其为0时执行读操作,为1时执行写操作,这意味着一旦A/B端口独立,同一端口读写操作就无法同时发生,因此,如果采用上一篇文章中介绍方法将其配置为两个独立单端口...RAM,其读写行为与常规单端口RAM是不同,进一步而言,此时读写行为类似于NO_Change模式。...有两种方法可用于列表中获取元素,这涉及到两个命令,分别是lindex和lassign。...思考一下: 如何用foreach语句实现对变量赋值,其中所需值来自于一个给定列表。

    17.3K20

    Android训练课程(Android Training) - 高效显示图片

    高效显示图片(Displaying Bitmaps Efficiently) 了解如何使用通用技术来处理和读取位图对象,让您用户界面(UI)组件是可响应,并避免超过你应用程序内存限制方式。...管理位图内存 (Managing Bitmap Memory) 这节课将引导你 如何管理位图内存以最大化你应用性能。...当前设备屏幕尺寸和密度 例如,加载分辨率为 1024x768 像素图像到内存,最后却只显示在一个 ImageView 128x96缩放后图像,是非常不值得。...保存位图以备后用 下面的代码片段演示了 如何保持一个位图以备将来使用。...如果后台线程要很多次直接磁盘中加载图像,那么添加一个内存或者磁盘缓存是很有益,像课程 缓存位图 中描述那样。

    2.9K00

    Android内存优化-Bitmap内存优化

    基础了解 我们先了解一下,Bitmap到底占用多大内存。 Bitmap作为位图,需要读入一张图片每一个像素点数据,其主要占用内存地方也正是这些像素数据。...例如:ImageView大小是 100x100 像素,而图片原始大小是 200x300,那么宽缩放比是 2,高缩放比是 3,如果最终 inSampleSize=2,那么缩放图片大小 100x150...如果inSamleSize=3,那么缩放图片大小小于 ImageView所期望大小。这样图片就会被拉伸而导致模糊。...inJustDecodeBounds 参数 我们需要获取加载图片宽高信息,然后交给inSampleSize 参数选择缩放缩放,那么如何能不先加载图片却能获取得图片宽高信息,通过 inJustDecodeBunds...当获取了宽高信息,计算出缩放比后,然后在将 inJustDecodeBounds=false,再重新加载图片,就可以加载缩放图片。

    1.6K30

    常用控件之ImageView使用(一)

    ImageView可以适用于任何布局中,并且Android为其提供了缩放和着色一些操作。 一....,并且设置 layout_width和 layout_height为 wrap_content; android:scaleType:设置所显示图片如何缩放或移动以适应ImageView大小。...fitXY:横向、纵向独立缩放,以适应该 ImageView; fitStart:保持纵横比缩放图片,并且将图片放在 ImageView左上角; fitCenter:保持纵横比缩放图片,缩放完成后将图片放在...ImageView中央; fitEnd:保持纵横比缩放图片,缩放完成后将图片放在 ImageView右下角; center:把图片放在 ImageView中央,但是不进行任何缩放; centerCrop...而且一些小伙伴阔能使用是自己手机,相册都不知道在哪个文件夹下,没关系,接下来我们就教你如何相册中选取照片并通过 ImageView进行加载!!

    1.7K20

    【Android 应用开发】AndroidUI设计 之 图片浏览器

    ; -- fitStart : 方法中常量值为 ImageView.ScaleType.FIT_START, 保持长宽比缩放, 直到该图片完全显示在ImageView中, 缩放完成之后该图片在左上角;...-- fitCenter : 方法中常量值为 ImageView.ScaleType.FIT_CENTER, 保持长宽比缩放, 直到该图片完全显示在ImageView中, 缩放完成之后该图片位于中央...; -- fitEnd : 方法中常量值为 ImageView.ScaleType.FIT_END, 保持长宽比缩放, 直到该图片完全显示在ImageView中, 缩放完成之后该图片位于右下角; --...ImageView常用方法 设置图片 :  -- 设置位图 : setImageBitmap(bitmap), 为ImageView设置Bitmap位图显示; -- 设置Drawable : setImageDrawable...图片放大缩小 获取View组件宽高 : 在Activity普通方法中无法获取到view组件准确值, 如果想要获取view组件宽高, 可以在 onWindowFocusChanged()方法中获取;

    93320

    高效利用Bitmap

    如果运用以上代码,在加载图片尺寸远大于ImageView尺寸,你会发现控件加载图片非常缓慢。...屏幕densityDpi值就是160 缩放系数 Options类中存在一个inScaled参数,这个参数表示是否支持缩放,我们Options默然构造方法中可以看到这个参数被初始化为了true,也就是说默认是支持缩放...那么将如何进行缩放呢?答案是根据缩放系数进行缩放。关于缩放系数计算方法,其实我们在讲解如何计算内存中Bitmap大小时已经介绍过了。...通过设置inSampleSize我们就能够将图片缩放到一个合理大小 4 Bitmap优化 1.获取图片原始宽高 通过将OptionsinJustDecodeBounds属性设为true后调用decodeResource...方法,可以实现不真正加载图片而只是获取图片尺寸信息 ?

    68530

    加载大图片到内存

    ImageView控件对象 调用BitmapFactory对象decodeFile(pathName)方法,来获取一个位图对象,参数:pathName是String类型图片路径 把图片导入到手机sdcard...目录下面 调用ImageView对象setImageBitmap(bitemap)方法,参数:Bitemap对象 此时会报内存溢出错误 我们需要对图片进行缩放 手机分辨率比如:320*480 图片分辨率比如...获取Options对象outHeight属性,值为图片高度 获取Options对象outWidth属性,值为图片宽度 获取WindowManager对象,通过getSystemSerivce(...)方法,参数:WINDOW_SERVICE 调用WindowManager对象getDefaultDisplay().getHeight()或getWidth()方法,获取宽高 计算宽和高缩放比例...inSampleSize为上面计算比例 调用重载方法BitmapFactory对象decodeFile(pathName,opts),获取到Bitmap对象 调用ImageView对象setImageBitmap

    98420

    自定义圆形图片

    , TileMode); 调用这个方法来产生一个画有一个位图渲染器(Shader) 看参数 bitmap 即在渲染器内位图 TileMode ,分为三类 1、CLAMP  :如果渲染器超出原始边界范围...使用这个类目的,就是把它对象设置给Paint ,而Paint会根据TileMode进行绘制位图 二、实现圆形图片步骤 首先,ImageView和ImageButton需要图片, 有两种生成圆形图片方法...10 width = bitmap.getWidth(); 11 height = bitmap.getHeight(); 12 //获取bitmap位图宽高中最小值...bitmap位图宽高中最小值,作为圆形图片 24 width = bitmap.getWidth(); 25 height = bitmap.getHeight()...总结此方法缺点: 1、该方法无法缩放原图,若原图宽高不一致,则显示效果不佳,无法正常显示出较长边部分内容 2、圆形图片效果有一定损耗,效果不佳 适用于对图片精美度要求不高需求使用 自定义View

    1.9K80
    领券