android中Bitmap用法(显示,保存,缩放,旋转)实例分析

本文实例讲述了android中Bitmap用法。分享给大家供大家参考。具体如下:

在Android SDK中可以支持的图片格式如下:png , jpg , gif和bmp。

1.Bitmap的创建

借助于BitmapFactory。

1)资源中的图片

使用BitmapFactory获取位图
复制代码 代码如下:Bitmap bmp = BitmapFactory.decodeResource(this.getResources(), R.drawable.testImg);

或者是:

Resources res=getResources(); //使用BitmapDrawable获取位图 //使用BitmapDrawable (InputStream is)构造一个BitmapDrawable; //使用BitmapDrawable类的getBitmap()获取得到位图; // 读取InputStream并得到位图 InputStream is=res.openRawResource(R.drawable.testImg); BitmapDrawable bmpDraw=new BitmapDrawable(is); Bitmap bmp=bmpDraw.getBitmap();

2)SD卡中的图片
复制代码 代码如下:Bitmap bmp = BitmapFactory.decodeFile("/sdcard/testBitmap/testImg.png")

2. 把 Bitmap 保存在sdcard中

File fImage = new File("/sdcard/testBitmap/testImg.png"); fImage.createNewFile(); FileOutputStream iStream = new FileOutputStream(fImage); bmp.compress(CompressFormat.PNG, 100, iStream); iStream.close(); fImage.close(); iStream =null; fImage =null; //写到输出流里,就保存到文件了。

3.使用网络中的图片

//图片的链接地址 String imgURLStr = "http://tx.bdimg.com/sys/portrait/item/990e6271796a7a6c170c.jpg"; URL imgURL = new URL(imgURLStr); URLConnection conn = imgURL.openConnection(); conn.connect(); InputStream is = conn.getInputStream(); BufferedInputStream bis = new BufferedInputStream(is); //下载图片 Bitmap bmp = BitmapFactory.decodeStream(bis); //关闭Stream bis.close(); is.close(); imgURL =null;

4.显示图片

1)转换为BitmapDrawable对象显示位图

// 转换为BitmapDrawable对象 BitmapDrawable bmpDraw=new BitmapDrawable(bmp); // 显示位图 ImageView iv2 = (ImageView)findViewById(R.id.ImageView02); iv2.setImageDrawable(bmpDraw);

2)使用Canvas类显示位图
复制代码 代码如下:canvas.drawBitmap(bmp, 0, 0, null);

5.缩放位图

1)将一个位图按照需求重画一遍,画后的位图就是我们需要的了,与位图的显示几乎一样:
复制代码 代码如下:drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint)

2)在原有位图的基础上,缩放原位图,创建一个新的位图:
复制代码 代码如下:CreateBitmap(Bitmap source, int x, int y, int width, int height, Matrix m, boolean filter)

3)借助Canvas的scale(float sx, float sy) ,不过要注意此时整个画布都缩放了。

4)借助Matrix:

Matrix matrix=new Matrix(); matrix.postScale(0.2f, 0.2f); Bitmap dstbmp=Bitmap.createBitmap(bmp,0,0,bmp.getWidth(),bmp.getHeight(),matrix,true); canvas.drawBitmap(dstbmp, 10, 10, null);

6.旋转位图

借助Matrix或者Canvas来实现。

Matrix matrix=new Matrix(); matrix.postRotate(45); Bitmap dstbmp=Bitmap.createBitmap(bmp,0,0,bmp.getWidth(), bmp.getHeight(),matrix,true); canvas.drawBitmap(dstbmp, 10, 10, null);

希望本文所述对大家的Android程序设计有所帮助。

时间: 2024-09-09 20:56:14

android中Bitmap用法(显示,保存,缩放,旋转)实例分析的相关文章

android中Bitmap用法(显示,保存,缩放,旋转)实例分析_Android

本文实例讲述了android中Bitmap用法.分享给大家供大家参考.具体如下: 在Android SDK中可以支持的图片格式如下:png , jpg , gif和bmp. 1.Bitmap的创建 借助于BitmapFactory. 1)资源中的图片 使用BitmapFactory获取位图 复制代码 代码如下: Bitmap bmp = BitmapFactory.decodeResource(this.getResources(), R.drawable.testImg); 或者是: Reso

Android中Bitmap用法实例分析_Android

本文实例讲述了Android中Bitmap用法.分享给大家供大家参考,具体如下: 一般在android程序中把图片文件放在res/drawable目录下就可以通过R.drawable.id来使用,但在存储卡中的图片怎样引用呢?下面通过实现这个功能来介绍Bitmap的用法. 程序如下: import java.io.File; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.B

Android中Bitmap用法实例分析

本文实例讲述了Android中Bitmap用法.分享给大家供大家参考,具体如下: 一般在android程序中把图片文件放在res/drawable目录下就可以通过R.drawable.id来使用,但在存储卡中的图片怎样引用呢?下面通过实现这个功能来介绍Bitmap的用法. 程序如下: import java.io.File; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.B

Android中home键和back键区别实例分析_Android

本文实例分析了Android中home键和back键区别.分享给大家供大家参考.具体如下: back键 Android的程序无需刻意的去退出,当你一按下手机的back键的时候,系统会默认调用程序栈中最上层Activity的Destroy()方法来销毁当前Activity,当此Activity又被其它Activity启动起来的时候,会重新调用OnCreate()方法进行创建,当栈中所有Activity都弹出结束后,应用也就随之结束了.如果说程序中存在service之类的,则可以在恰当的位置监听处理

Android中Service实时向Activity传递数据实例分析

本文实例讲述了Android中Service实时向Activity传递数据的方法.分享给大家供大家参考.具体如下: 这里演示一个案例,需求如下: 在Service组件中创建一个线程,该线程用来生产数值,每隔1秒数值自动加1,然后把更新后的数值在界面上实时显示. 步骤如下: 1.新建一个android项目工程,取名为demo. 2.新建一个Service类,用来实时生产数值,供界面实时显示. package com.ljq.activity; import android.app.Service;

Android中imageView图片放大缩小及旋转功能示例代码

一.简介 二.方法 1)设置图片放大缩小效果 第一步:将<ImageView>标签中的android:scaleType设置为"fitCenter" android:scaleType="fitCenter" 第二步:获取屏幕的宽度 DisplayMetrics dm=new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); dm.widthPixels 第三

Android中Notification用法实例总结_Android

本文实例总结了 Android中Notification用法.分享给大家供大家参考,具体如下: 我们在用手机的时候,如果来了短信,而我们没有点击查看的话,是不是在手机的最上边的状态栏里有一个短信的小图标提示啊?你是不是也想实现这种功能呢?今天的Notification就是解决这个问题的. 我们也知道Android系统也是在不断升级的,有关Notification的用法也就有很多种,有的方法已经被android抛弃了,现在我实现了三种不同的方法,并适应不同的android版本.现在我就把代码公布出

Android中WebView用法实例分析_Android

本文实例讲述了Android中WebView用法.分享给大家供大家参考,具体如下: WebView相当于一个迷你浏览器,采用WebKit内核,因此完美支持html,javascript,css等. 在开发过程中应该注意几点: 1.AndroidManifest.xml中必须使用许可"android.permission.INTERNET",否则会出Web page not available错误. 2.如果访问的页面中有Javascript,则webview必须设置支持Javascri

html-有关Android中HTML的离线保存

问题描述 有关Android中HTML的离线保存 1.HTML离线保存后,图片为什么可以在离线状态下查看?HTML的源码变了吗?不是指向文件在网站服务器上的URL吗?2.Android编程中怎么样显示HTML,用textView还是用webview?3.Android编程中怎么样保存一个HTML中的部分内容?譬如说一个HTML文件我只要body部分,并且我要求能够离线查看,我该怎么样实现? 解决方案 1.html离线后,一般包括一个网页和一个网页资源的文件夹,访问的时候url地址指向本地,如fi