android中如何显示图片的一部分

分类: Android应用开发系列教程 Android应用开发技巧 2012-04-25 23:42 1728人阅读 评论(0) 收藏 举报

androidmatrixfloatconstructorclassnull

作者:张宗硕

android应用程序中加载一张图片,然后把它显示出来这是一件非常容易的事情,那怎么才能显示一张图片的一小部分呢,一种做法是把图片ps一下,要显示的那部分单独存成一张图片,然后程序中加载它,并把它显示出来。但这样会增加程序的图片量。对一张完整的图,用程序去切割你想要的那部分也是很简单的。

下面实现的一个程序,是加载了一张图片,然后经过变换让图片填充到手机的整个屏幕,然后在屏幕的中间显示图片中间的100*100的部分。

ShowPoritionPictureActivity代码:

package com.iwin.zzs;import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.WindowManager;public class ShowPoritionPictureActivity extends Activity {/** Called when the activity is first created. */Bitmap picRes;Bitmap showPic;//获取原图片的宽和高int picWidth;int picHeight;private PoritionView poritonView = null;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);// 不显示状态栏this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);DisplayMetrics dm = new DisplayMetrics();this.getWindowManager().getDefaultDisplay().getMetrics(dm);// 得到屏幕的长和宽int screenWidth = dm.widthPixels;                //水平分辨率int screenHeight = dm.heightPixels;              //垂直分辨率picRes = BitmapFactory.decodeResource(this.getResources(), R.drawable.girl);// 得到图片的长和宽picWidth = picRes.getWidth();picHeight = picRes.getHeight();// 计算缩放率,新尺寸除原始尺寸float scaleWidth = ((float) screenWidth ) / picWidth;float scaleHeight = ((float) screenHeight ) / picHeight;// 创建操作图片用的matrix对象Matrix matrix = new Matrix();// 缩放图片动作matrix.postScale(scaleWidth, scaleHeight);// 新得到的图片是原图片经过变换填充到整个屏幕的图片Bitmap picNewRes = Bitmap.createBitmap(picRes, 0, 0,picWidth, picHeight, matrix, true);// bitmap = Bitmap.createBitmap(400, 480, Bitmap.Config.ARGB_8888);// canvas=new Canvas();         // canvas.setBitmap(bitmap); showPic = Bitmap.createBitmap(picNewRes, screenWidth/2-50, screenHeight/2-50, 100, 100);poritonView = new PoritionView(this);poritonView.setBitmapShow(showPic, screenWidth/2-50, screenHeight/2-50);setContentView(poritonView);}

新建PoritionView类代码:

package com.iwin.zzs;import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.view.View;public class PoritionView extends View {private Bitmap showPic = null;private int startX = 0;private int startY = 0;public PoritionView(Context context) {super(context);// TODO Auto-generated constructor stub}@Overrideprotected void onDraw(Canvas canvas) {// TODO Auto-generated method stubsuper.onDraw(canvas);canvas.drawBitmap(showPic, startX, startY, null);}public void setBitmapShow(Bitmap b, int x, int y){showPic = b;startX = x;startY = y;}
}

在工程res/drawable里面添加图片gir.png,运行程序的效果是只显示图片的中间100*100的那部分图片

转载于:https://my.oschina.net/janson2013/blog/380217

android中如何显示图片的一部分相关推荐

  1. 【Android 安装包优化】WebP 图片格式兼容与性能 ( Android 中的 WebP 图片格式兼容问题 | Android 中的 WebP 图片格式性能 )

    文章目录 一.Android 中的 WebP 图片格式兼容问题 二.Android 中的 WebP 图片格式性能 三.参考资料 一.Android 中的 WebP 图片格式兼容问题 在 Android ...

  2. android中Picasso显示网络图片

    使用之前导入jar包(picasso.jar网上搜搜都有)或者在android studio中添加依赖compile 'com.squareup.picasso:picasso:2.5.2' 使用方式 ...

  3. 【Android 安装包优化】Android 中使用 SVG 图片 ( Android 5.0 以下的矢量图方案 | 矢量图生成为 PNG 图片 )

    文章目录 一.Android 5.0 以下的矢量图方案 二.矢量图生成为 PNG 图片 三.完整的 build.gradle 构建脚本 四.编译效果 五.参考资料 一.Android 5.0 以下的矢 ...

  4. [安卓基础] 008.Android中的显示单位

    Android中的显示单位 px (pixels)像素 一般HVGA代表320x480像素,这个用的比较多. dip或dp (device independent pixels)设备独立像素 这个和设 ...

  5. php如何随机显示图片,php中随机显示图片的函数代码_php

    /********************************************** * Filename : img.php * Author : freemouse http://www ...

  6. java byte 图片浏览器直接显示_在imge控件中直接显示图片(图片是byte[]格式)

    在工作过程中遇到了这个问题,在网上查了一些资料,结合自己的解决方法及解决过程总结了下,方面以后查阅.如果能帮到同样遇到这个问题的你,将非常高兴哦~_~ 由于asp.net中的Image控件是在Syst ...

  7. html中img显示图片的两种常用方式

    html中img显示图片的两种常用方式 显示图片,尤其是二维码的时候,大都是自动生成的,所以就需要能够从后台返回字符串,前台浏览器进行解析.好了,下面是这两种方式. 1. <img src=&q ...

  8. Android中如何根据图片url路径来获取网络图片

    原文地址:Android中如何根据图片url路径来获取网络图片 1.根据图片的URL路径来获取网络图片,核心代码如下: public static Bitmap getBitmap(String pa ...

  9. 【Android Gradle 插件】自定义 Gradle 插件优化图片 ① ( Android 中的 WebP 图片格式使用 | WebP 格式转换 | WebP 参考文档 )

    文章目录 一.Android 中的 WebP 图片格式使用 二.WebP 格式转换 三.WebP 参考文档 Android Plugin DSL Reference 参考文档 : Android St ...

最新文章

  1. UA OPTI570 量子力学2 物质波与物质粒子
  2. python自动抢红包软件_快过年啦,还怕手速慢,我用Python自动抢红包!
  3. mxnet基础到提高(24)-C++-符号,变量读写
  4. struts 模块化开发学习
  5. 账户配置 三: Gmail
  6. 服务器被黑 追寻ip_我的服务器被打死,源IP暴露怎么办补救
  7. Beyond Compare 怎么新增与卸载文件格式
  8. 详解云原生应用实践与未来趋势
  9. 《无价》书中的精髓:商家是如何让消费者心甘情愿地多付钱的?消费者怎样才能识破商家的套路?
  10. Java中的日期和时间
  11. 计算机图形学复习笔记
  12. android4.4 display架构分析,Android display架构分析(五)
  13. Respon.WriteFile 下载文件
  14. MQTT学习之初识mqtt
  15. Windows任意文件读取漏洞
  16. office在线word、excel预览
  17. 如何成为“头脑王者”?每天5分钟,让你的大脑准备就绪!
  18. 做事效率太低?你必须改掉这7种坏习惯
  19. 计算机收藏夹位于哪个磁盘,win10收藏夹在电脑什么位置_win10系统收藏夹在哪里...
  20. win2008 php上传限制,win2008 r2服务器 iis7.5限制100M带宽的方法

热门文章

  1. css动画,实现落叶效果
  2. WinForm(十五)窗体间通信
  3. 用devc++表白_表白 | 回复4.14号表白32,我也是个乒乓球初学者,可以约球玩玩咩...
  4. mysql ibd 数据文件恢复极速恢复工具 ibd recover tool
  5. 三菱MR-JE-C伺服应用详细介绍
  6. Hive的基本知识与操作
  7. TCGA数据库的利用(三)—做差异分析的三种方法
  8. mysql left函数的使用方法_mysql的left函数
  9. 《天下贰》新版本“逐鹿中原”今日公测 开启PK新模式
  10. Windows10如何设置宽带连接的自动启动