首页
学习
活动
专区
工具
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文件夹设置得不对,那么获取的值就不是这个,而是对应比例的缩放

65220
  • 如何从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

    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

    如何从列表中获取元素

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

    17.3K20

    常用控件之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()方法中获取;

    93820

    自定义圆形图片

    , 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

    加载大图片到内存

    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

    99120

    高效利用Bitmap

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

    69030
    领券