本文实例讲述了Android编程实现只显示图片一部分的方法。分享给大家供大家参考,具体如下:

在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;

@Override

public 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

}

@Override

protected void onDraw(Canvas canvas) {

// TODO Auto-generated method stub

super.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的那部分图片。

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

android显示图片部分区域,Android编程实现只显示图片一部分的方法相关推荐

  1. html如何把图片在背景图一半,img只显示图片一部分 或 css设置背景图片只显示图片指定区域...

    17:14 2016/3/22 img只显示图片一部分 或 css设置背景图片只显示图片指定区域 background-position: 100% 56%; 设置背景图片显示图片的哪个坐标区域,图片 ...

  2. centos7点击桌面图标无反应_【问题帖】电脑不显示桌面图标和任务栏,只显示鼠标光标咋办?...

    本帖首发于:360官网.360安全卫士服务号.原作者:Yimoo1314 "电脑不显示桌面图标和任务栏,只显示鼠标光标"问题解决方案-安全资讯-360官网​www.360.cnht ...

  3. Android高德地图绘制区域,Android高德地图多边形的绘制与编辑

    最近项目中用到了一个高德地图画地块的功能,差了一下api,发现只有js有相关的方法,所以仿照js的交互方式做了一个android版的多边形绘制与编辑. 先不说,上一张效果图 完成效果图 1.通过观察, ...

  4. Android在ListView中嵌套一个GridView时只显示一行的原因及解决方法

    在之前的编程里,我还没有遇到过要在一个ListView中嵌套一个GridView或是在一个GridView中嵌套一个ListView.所以今天事儿来了!我花了一将近3个小时,找到了为什么我在一个Lis ...

  5. android开发之高德地图不能定位,只显示格子

    android 在引用高德地图组件进行开发的时候,不能定位,只显示格子,如下图所示: 参考了网上的一下大家的解决方案,主要是 (1)检查申请的KEY是否正确.PS:申请方法请参考这篇博客,写的很全很详 ...

  6. win7一直显示正在关机_LG可编程控制器一直显示正在通信维修选凌科公司规模大...

    LG可编程控制器一直显示正在通信维修选凌科公司规模大 专门检查负载是否很重SALM+,-指示灯(警报)使用固定输出维护和修理正在与您的Ultraware软件通信,当必须传递扭矩时,电机按逆时针方向运行 ...

  7. 计算机设置了桌面显示为什么没有反应,电脑开机后只显示桌面背景,图标没有,鼠标也没有反应,怎么办?...

    电脑开机后只显示桌面背景,图标没有,鼠标也没有反应,怎么办?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 电脑开机后只 ...

  8. 电脑桌面只有计算机回收站显示,电脑桌面上只有回收站怎么办 电脑只显示回收站的两种解决方法...

    不久前小编的电脑开机后,桌面只显示一个回收站,并且出现了"C:\WINDOWS\system32\config\systemprofile\Desktop不可用"的错误提示,后来经 ...

  9. java显示公式_如何让Excel中只显示公式不计算

    这个是由来已久的问题,但是由于Office安装的时候是显示公式计算结果,并且自动更新的,所以当表格中出现了只显示公式,而不显示计算结果的时候,往往让人手足无措了.在最近的学员中就出现了几个这样的情况, ...

最新文章

  1. 实现 连续15签到记录_MySQL和Redis实现用户签到,你喜欢怎么实现?
  2. 深度学习环境配置指南:Pytorch、TensorFlow、Keras
  3. c语言二进制long,C语言填空题 把从键盘上输入的十进制数(long型)以二进制~十六进制任一制式的形式输出#include main(){...
  4. 四十七、面试前,必须搞懂Java中的线程池ThreadPoolExecutor(上篇)
  5. 大讲台大数据特训学习笔记
  6. python telnetlib详解 执行循环命令_Python的Telnetlib read_until'#'或'>',多发串的决心?...
  7. Qt学习笔记之QString
  8. vhdl变量除法_VHDL语法总结以及编码风格(二)
  9. ruby和python比较_为什么说Ruby比Python容易阅读
  10. 初识用.NET Remoting来开发分布式应用
  11. 银监计算机类 考试题库,银监会(计算机类)笔试资料-微观经济学试题库 .doc...
  12. 百度网盘高速下载资源
  13. 遇到没有exe文件的驱动
  14. android rxbus工具类,RxBus的工具类
  15. 楼梯计算机公式,楼梯踏步数计算公式是什么
  16. 教你如何购买阿里云香港服务器(教程)
  17. windows10升级助手_别用 XX 清理助手了,这 5 个自带技巧让你的 Windows 多出 5GB
  18. Linux常用命令之CUT
  19. 第一个javaweb程序--你干嘛~嗨嗨~哎呦
  20. SSM 尚筹网 Vue3 + Vite + Java

热门文章

  1. 【find指令】在Ubuntu系统下花式查找文件
  2. 链家房屋数据分析实战
  3. 1、ESP32-S - 安装开发工具 thonny IDE
  4. 如何分析个股基本面_股票基本面怎么分析?
  5. MySql学习(七)排序和分页(order by limit),及存在的坑
  6. 服务器托管与租用应该怎么选择?
  7. 开始连载PBOC相关文章了
  8. Windows还原系统后分区故障解决方案
  9. 十二不香,十三香!包邮送iPhone13一部!
  10. 单点登录无限跳转的问题