android显示图片部分区域,Android编程实现只显示图片一部分的方法
本文实例讲述了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编程实现只显示图片一部分的方法相关推荐
- html如何把图片在背景图一半,img只显示图片一部分 或 css设置背景图片只显示图片指定区域...
17:14 2016/3/22 img只显示图片一部分 或 css设置背景图片只显示图片指定区域 background-position: 100% 56%; 设置背景图片显示图片的哪个坐标区域,图片 ...
- centos7点击桌面图标无反应_【问题帖】电脑不显示桌面图标和任务栏,只显示鼠标光标咋办?...
本帖首发于:360官网.360安全卫士服务号.原作者:Yimoo1314 "电脑不显示桌面图标和任务栏,只显示鼠标光标"问题解决方案-安全资讯-360官网www.360.cnht ...
- Android高德地图绘制区域,Android高德地图多边形的绘制与编辑
最近项目中用到了一个高德地图画地块的功能,差了一下api,发现只有js有相关的方法,所以仿照js的交互方式做了一个android版的多边形绘制与编辑. 先不说,上一张效果图 完成效果图 1.通过观察, ...
- Android在ListView中嵌套一个GridView时只显示一行的原因及解决方法
在之前的编程里,我还没有遇到过要在一个ListView中嵌套一个GridView或是在一个GridView中嵌套一个ListView.所以今天事儿来了!我花了一将近3个小时,找到了为什么我在一个Lis ...
- android开发之高德地图不能定位,只显示格子
android 在引用高德地图组件进行开发的时候,不能定位,只显示格子,如下图所示: 参考了网上的一下大家的解决方案,主要是 (1)检查申请的KEY是否正确.PS:申请方法请参考这篇博客,写的很全很详 ...
- win7一直显示正在关机_LG可编程控制器一直显示正在通信维修选凌科公司规模大...
LG可编程控制器一直显示正在通信维修选凌科公司规模大 专门检查负载是否很重SALM+,-指示灯(警报)使用固定输出维护和修理正在与您的Ultraware软件通信,当必须传递扭矩时,电机按逆时针方向运行 ...
- 计算机设置了桌面显示为什么没有反应,电脑开机后只显示桌面背景,图标没有,鼠标也没有反应,怎么办?...
电脑开机后只显示桌面背景,图标没有,鼠标也没有反应,怎么办?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 电脑开机后只 ...
- 电脑桌面只有计算机回收站显示,电脑桌面上只有回收站怎么办 电脑只显示回收站的两种解决方法...
不久前小编的电脑开机后,桌面只显示一个回收站,并且出现了"C:\WINDOWS\system32\config\systemprofile\Desktop不可用"的错误提示,后来经 ...
- java显示公式_如何让Excel中只显示公式不计算
这个是由来已久的问题,但是由于Office安装的时候是显示公式计算结果,并且自动更新的,所以当表格中出现了只显示公式,而不显示计算结果的时候,往往让人手足无措了.在最近的学员中就出现了几个这样的情况, ...
最新文章
- 实现 连续15签到记录_MySQL和Redis实现用户签到,你喜欢怎么实现?
- 深度学习环境配置指南:Pytorch、TensorFlow、Keras
- c语言二进制long,C语言填空题 把从键盘上输入的十进制数(long型)以二进制~十六进制任一制式的形式输出#include main(){...
- 四十七、面试前,必须搞懂Java中的线程池ThreadPoolExecutor(上篇)
- 大讲台大数据特训学习笔记
- python telnetlib详解 执行循环命令_Python的Telnetlib read_until'#'或'>',多发串的决心?...
- Qt学习笔记之QString
- vhdl变量除法_VHDL语法总结以及编码风格(二)
- ruby和python比较_为什么说Ruby比Python容易阅读
- 初识用.NET Remoting来开发分布式应用
- 银监计算机类 考试题库,银监会(计算机类)笔试资料-微观经济学试题库 .doc...
- 百度网盘高速下载资源
- 遇到没有exe文件的驱动
- android rxbus工具类,RxBus的工具类
- 楼梯计算机公式,楼梯踏步数计算公式是什么
- 教你如何购买阿里云香港服务器(教程)
- windows10升级助手_别用 XX 清理助手了,这 5 个自带技巧让你的 Windows 多出 5GB
- Linux常用命令之CUT
- 第一个javaweb程序--你干嘛~嗨嗨~哎呦
- SSM 尚筹网 Vue3 + Vite + Java