Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 864|回复: 0

动态放大缩小ImageView里的图片 - Android学习

[复制链接]

该用户从未签到

发表于 2011-10-27 08:13:13 | 显示全部楼层 |阅读模式
运用Matrix对象来缩放图片文件
在Android程序中,只要将图片文件存放在 /res/drawable/ 目录下,即可以通过R.drawable.id来取得图片id,并使用图片。如果不是存放在这个目录下面的图片文件,例如,用户想要从存储卡中读取刚拍的照片,又该如何实现呢?Android API中提供了Bitmap(Android.graphics.Bitmap)与BitmapFactory(Android.graphics.BitmapFactory)对象,可以读取存储卡或手机文件系统里的图片文件。
实现本范例前需先准备两张图片,分别存放在“/res/drawable/”文件夹与手机文件系统的另一个文件夹中。以本范例而言,两张图片文件的路径分别为 /res/drawable/ex04_22_1.png与/data/data/irdc. ex04_22_2.png。范例中会先将drawable目录里的图片文件显示于ImageView中,再设计一个Button,当用户单击Button后,将ImageView里的图片换成另一张存在手机文件系统里的图形文件。
src/irdc.ex04_22/EX04_22.java
程序中以BitmapFactory.decodeFile(fileName)来取得Bitmap对象,再将Bitmap对象以setImage Bitmap()来设置给ImageView。

package irdc.ex04_22;

/* import程序略 */

public class EX04_22 extends Activity
{
  /*声明对象变量*/
  private ImageView mImageView;
  private Button mButton;
  private TextView mTextView;
  private String fileName="/data/data/irdc.ex04_22/ex04_22_2.png";
  
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    /*加载main.xml Layout */
    setContentView(R.layout.main);
   
    /* 取得Button对象,并添加onClickListener */
    mButton = (Button)findViewById(R.id.mButton);
    mButton.setOnClickListener(new Button.OnClickListener()
    {
      public void onClick(View v)
      {
      /* 取得对象 */
        mImageView = (ImageView)findViewById(R.id.mImageView);
        mTextView=(TextView)findViewById(R.id.mTextView);
        /* 检查文件是否存在 */
        File f=new File(fileName);   
        if(f.exists())
        {
          /* 产生Bitmap对象,并放入mImageView中 */
          Bitmap bm = BitmapFactory.decodeFile(fileName);
          mImageView.setImageBitmap(bm);
          mTextView.setText(fileName);
        }
        else
        {  
          mTextView.setText("文件不存在");
        }
      }
    });
  }
}
扩展学习
BitmapFactory(android.graphics.BitmapFactory)是Android API提供的对象,可以将图片文件转换成Bitmap(android.graphics.Bitmap)对象,范例中使用的decodeFile()可以将手机文件系统中的图片文件转换成Bitmap对象。另外,BitmapFactory也提供了其他的方法,如decodeResource()可以将 /res/drawable/内预先存入的图片文件转换成Bitmap对象,decodeStream()方法则可将InputStream转换成Bitmap对象。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2025-1-11 20:53 , Processed in 0.294149 second(s), 36 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表