`

图片的使用

阅读更多
在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);



分享到:
评论

相关推荐

    Ueditor1.4.3 独立上传图片使用方法

    Ueditor1.4.3 独立上传图片使用方法,自从Ueditor1升级后监听事件失效的解决办法

    C# 图片查看器 主要用于嵌入某些大工程做显示图片使用

    类似于windows 图片和传真查看器,主要用于嵌入某些大工程做显示图片使用。

    图片素材 Devexpress的使用方法

    图片素材 Devexpress的使用方法图片素材 Devexpress的使用方法图片素材 Devexpress的使用方法图片素材 Devexpress的使用方法图片素材 Devexpress的使用方法图片素材 Devexpress的使用方法

    websocket从服务端获取图片

    此外,服务端应考虑使用高效的图片编码格式,如WebP,以减少传输数据量。 总结,本示例展示了如何利用WebSocket、Java、HTML5和Tomcat8来实现实时的图片传输功能。通过理解这些技术并熟练运用,开发者可以创建出更...

    WPF设置图片Source时不占用图片的方法

    在某些时候我们使用WPF中Image控件,加载一个图之后想删除这个图片,但由于图片已经被Image占用,会提示“文件正由另一个程序使用,无法删除”之类的信息,此时可以用该方法设置Image的Source,这样图片加载后可以...

    android画廊效果,中间图片变大

    比如,中间的图片使用全尺寸布局,而其他图片则缩小比例。可以通过在`PagerAdapter`中动态设置每个页面的布局来实现。 6. **触摸事件处理**:为了响应用户的滑动操作,需要处理触摸事件。可以监听`ViewPager`的滑动...

    php 图片高斯模糊 代码 实例

    PHP图片高斯模糊,函数直接调用形式 支持png,jpg,gif,其他图片类型可以自己扩充

    VC使用滚动条显示图片

    在VC++(Visual C++)开发环境中,使用滚动条显示图片是一项常见的需求,尤其是在处理大尺寸图像时。本文将详细讲解如何实现这一功能,以及涉及的相关知识点。 首先,我们需要了解滚动条的基本概念。滚动条是...

    使用poi替换word中的文字和图片实现打印

    本示例将深入探讨如何使用Apache POI库来替换Word文档中的文字和图片,并实现打印功能。 首先,确保在项目中正确导入了Apache POI相关的JAR包。通常,这包括poi-ooxml、poi-ooxml-schemas和commons-lang3等。这些库...

    Android使用Matrix矩阵类对图像进行缩放、旋转、对比度、亮度处理(原代码)

    该资源主要是结合博客...免费资源仅供大家学习参考,同时项目主要是讲述Matrix的方法,在加载大图片时可能会出现越界bug,横竖屏切换都没有考虑.希望对大家有所帮助吧!By:Eastmount

    VFP使用表单和报表中使用图片事例

    这可以通过创建一个临时的OLE服务器进程,例如使用Microsoft Paint打开图片,然后使用VFP的OleCreate方法创建并加载该图片。加载后,可以将OLE对象保存到备注字段。 2. **使用Picture控件**:另一种方法是使用...

    python爬取百度图片

    使用任意关键字 python爬取百度图片 使用任意关键字 python爬取百度图片 使用任意关键字 python爬取百度图片 使用任意关键字 python爬取百度图片 使用任意关键字 python爬取百度图片 使用任意关键字 python爬取百度...

    vue 使用kindeditor粘贴复制图片上传给自己服务器,单独图片上传

    vue 使用kindeditor粘贴复制图片上传给自己服务器,单独图片上传,避免用户到处寻找,解决了用户粘贴复制截图时候,图片变成base64,上传给后台的时候长度过于长,所以在粘贴的时候就上传给服务器,最后以形式显示在富...

    WPF遍历循环显示本地图片

    C:\Documents and Settings\Administrator\桌面\扫描图像测试 比方说,这个路径下有10张图片,可以循环点击显示这10张图片 使用FileStream 解决文件被进程占用问题。使用一个计数变量,可以头尾循环

    CKEditor3.x配置使用教程,支持图片上传其中图片上传支持Ftp

    此文件是CKEditor3.x在的配置使用,主要是正对JAVA项目的 CKEditor本身不支持图片上传功能,此文档将描述如何配置和使用图片上传 其中图片上传支持FTP服务器功能,和压缩指定大小的功能。

    使用Android Studio 练习RecyclerView 异步加载图片,解决图片乱序问题。

    3. **使用 placeholders 和 error 图片**:在图片未加载成功前,可以先显示一个占位符图片,以避免空的ImageView出现在屏幕上。如果图片加载失败,可以展示一个错误图片,并提供重试机制。 4. **同步加载策略**:...

    listveiw异步加载之优化版

    当内存达到一定阈值时,LRU算法会检查所有图片,将最久未使用的图片移出内存,释放空间给新图片使用。 5. **图片错乱问题**:在ListView中,由于复用机制,如果不正确处理每个ImageView的状态,可能会导致图片显示...

    在VC中使用picture控件显示图片

    在VC++(Visual C++)开发环境中,使用Picture控件来显示图片是一项常见的任务,尤其在创建GUI(图形用户界面)应用时。Picture控件是一个可视化组件,它允许程序员将图像嵌入到应用程序中,为用户提供直观的视觉...

    使用python+robot framework识别图片验证码

    本篇将详细讲解如何使用Python和Robot Framework相结合来识别图片验证码,以及如何利用PIL库进行图像处理,以及提到了一个用于识别验证码的第三方库——pytesser。 首先,让我们了解Python和Robot Framework的基本...

    ueditor(单独使用上传图片)

    虽然编辑器实例被隐藏,我们仍可以使用ueditor提供的API手动触发图片上传,例如调用`UE.Editor.prototype.execCommand('insertimage', imgUrls)`,其中`imgUrls`是图片URL的数组。 6. **安全性与权限控制**: 在...

Global site tag (gtag.js) - Google Analytics