`
Everyday都不同
  • 浏览: 723502 次
  • 性别: Icon_minigender_1
  • 来自: 宇宙
社区版块
存档分类
最新评论

ImageView加载图片资源并进行缩放

阅读更多
android应用中常常需要加载R.drawable下的图片资源到ImageView中显示出来。而且常常会遇到图片缩放的问题,缩放的关键是Matrix(矩阵方式)。加载资源图片以及缩放的语法是非常典型的一种写法,这里不妨把它记录下来:

加载图片
//显示图片的ImageView组件
ImageView imageView;
//初始的图片资源
Bitmap bitmap;
//图片的宽和高、当前缩放比、控制缩放的矩阵
int width, height;
Matrix matrix;
float curScale = 1;
		imageView = (ImageView) findViewById(R.id.image);
		matrix = new Matrix();
		//获取源图片
		bitmap = BitmapFactory.decodeResource(this.getResources(), R.drawable.flower);
//或者可以这样获取(不是从R.drawable.xx下加载时)
Bitmap bitmap = BitmapFactory.decodeFile(String pathName));
		//获得位图宽和高
		width = bitmap.getWidth();
		height = bitmap.getHeight();
		//设置imageview初始化时显示的图片
		imageView.setImageBitmap(bitmap);

缩放图片


//重置matrix
		matrix.reset();
		//缩放matrix
		matrix.setScale(curScale, curScale, 160, 200);

//根据原始位图和Matrix创建新图片
		Bitmap bitmap2 = Bitmap.createBitmap(bitmap, 0, 0, width, height, matrix, true);

//显示新的位图
		imageView.setImageBitmap(bitmap2);


重点是获取源图片位图资源的语法:
bitmap = BitmapFactory.decodeResource(this.getResources(), R.drawable.flower);

以及根据原始位图和缩放矩阵创造新图片的语法:
Bitmap bitmap2 = Bitmap.createBitmap(bitmap, 0, 0, width, height, matrix, true);

另外,获取ImageView组件内的BitmapDrawable:
BitmapDrawable tmp = (BitmapDrawable) imageView.getDrawable();
分享到:
评论

相关推荐

    ImageView加载图片

    本文将深入探讨如何使用`ImageView`加载图片,包括根据图片名字加载和从应用资源(src)中加载图片。 首先,让我们了解`ImageView`的基本用法。在XML布局文件中,我们可以这样创建一个`ImageView`: ```xml ...

    imageView图片缩放

    另外,可以考虑使用LruCache或 Glide 等库来管理图片资源,避免内存泄漏和提高图片加载效率。 六、布局设计 在XML布局文件中,需要为PhoneImageView设置合适的宽高,通常设置为wrap_content,以便自动适应图片大小...

    Android源码——ImageView控件缩放和旋转图片源码.zip

    当ImageView加载Bitmap时,会根据控件的大小和Bitmap的原始尺寸进行调整,以适应屏幕空间。这个过程涉及到了缩放操作。 缩放图片主要通过Matrix类来实现。Matrix是一个二维变换矩阵,可以执行平移、旋转、缩放等...

    AndroidImageView控件缩放和旋转图片源码.zip

    在Android中,我们可以使用Bitmap的rotate方法来旋转图片,但这通常需要先加载图片到内存,然后再进行旋转,可能会消耗大量资源。另一种方式是在ImageView的绘制过程中应用Matrix的postRotate方法,这样可以避免额外...

    Android通过ImageView实现图片的显示和切换

    在Android布局文件中,我们可以创建一个ImageView并设置其属性,如图片资源ID或图片URL。例如,在XML布局中,我们可以这样定义ImageView: ```xml <ImageView android:id="@+id/imageView" android:layout_width=...

    Android 可缩放ImageView

    然而,原生的ImageView并不支持复杂的缩放功能,尤其是在用户需要查看大图或者实现类似图片浏览器的应用时,这成为一个限制。"Android 可缩放ImageView"是为了弥补这个不足,提供了一个支持用户交互式缩放的视图,...

    Android ImageView控件缩放和旋转图片源码.zip

    源码可能展示了如何从本地文件系统、网络或者资源文件夹加载图片。 2. 缩放图片: ImageView支持两种缩放模式:CENTER和CENTER_CROP。默认是CENTER,保持图片原始比例居中显示,可能导致空白区域;CENTER_CROP则会...

    Android-GlideImageView基于Glide封装的图片加载库可以监听加载图片时的进度

    `GlideImageView`的实现原理主要是通过对Glide的请求监听器(RequestListener)进行扩展,该接口提供了`onLoadStarted()`、`onResourceReady()`、`onLoadFailed()`等方法,分别对应图片加载开始、加载完成和加载失败...

    Android-用于android的Imageview缩放库

    4. 图片加载:使用库提供的方法加载图片,同时考虑内存和磁盘缓存策略。 需要注意的是,在使用这类库时,开发者应关注性能优化,避免因为图片过大或过度缩放导致内存泄漏和应用崩溃。合理设置图片尺寸和分辨率,...

    Android使用控件ImageView加载图片的方法

    在本文中,我们将深入探讨如何使用ImageView加载图片,包括从本地资源加载和从网络加载两种常见方式。 首先,加载本地资源中的图片是最基本的操作。在XML布局文件中,我们可以通过设置`<ImageView>`的`src`属性来...

    点击ImageView放大阅览图片

    ImageView是Android SDK中用于显示图像的视图,它可以加载各种格式的图片资源,如JPEG、PNG等。默认情况下,ImageView显示图片时并不会提供缩放功能。为了实现点击图片放大,我们可以借助一些第三方库,例如Glide或...

    自定义ImageView控件,具有缩放和拖拽功能

    此外,为了让自定义控件能够像普通的ImageView一样在布局文件中使用,我们需要在res/layout/目录下创建一个xml布局文件,并在其中声明我们的自定义控件,同时设置属性,如图片资源等: ```xml android:layout_...

    android 在imageview上的指定位置添加图片 图片尺寸自适应

    本篇文章将详细讲解如何在ImageView上指定位置添加图片,并实现图片的等比例缩放以及自适应。 首先,我们从基础开始,理解Android中的ImageView。ImageView是Android SDK提供的一个用于显示单个图像的视图组件。它...

    Android平台的图像控件,可以异步加载网络图片、项目资源和本地图片,并且支持双指缩放、图片的基本处理.zip

    该控件支持在后台线程加载图片,避免阻塞UI,提高应用的响应速度。同时,它可能采用了诸如Picasso、Glide或者Fresco等流行的Android图片加载库,这些库具有缓存机制,可以有效减少网络请求,提升用户体验。 2. **...

    点击缩放的imageview

    1. **设置ImageView**:首先,我们需要在XML布局文件中创建一个ImageView,并为其设置合适的初始大小和图片资源。例如: ```xml <ImageView android:id="@+id/imageView" android:layout_width="wrap_content" ...

    Android开发之imageView图片按比例缩放的实现方法

    `ImageView`组件是用于展示图像的关键元素,它可以显示从资源、网络或内存中的图片。本文将详细探讨如何通过设置`ImageView`的`scaleType`属性来实现图片按比例缩放。 首先,`scaleType`属性决定了`ImageView`如何...

    android从网络获取图片资源,图片放大、缩小、触摸等操作。

    首先,从网络异步加载图片资源是为了避免阻塞主线程,确保用户界面(UI)的流畅性。Android应用的主线程主要负责处理UI更新,如果在此线程中执行耗时操作,会导致应用无响应,用户体验下降。因此,我们需要使用异步...

    android端用于异步加载图片,内存缓存等,imageview显示图片时增加淡入淡出动画_动画效果。.zip

    这些库能够智能地在后台线程加载图片,处理图片的缩放、裁剪,并在完成时无缝地更新到ImageView中。 2. **内存缓存**: 内存缓存是一种高效的缓存策略,它将常用的数据存储在应用程序的内存中,以便快速访问。在...

Global site tag (gtag.js) - Google Analytics