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开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android多媒体操作技巧汇总(音频,视频,录音等)》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。
- Android编程显示网络上的图片实例详解
- android 显示gif图片实例详解
- Android中TextView显示插入的图片实现方法
- Android实现TextView显示HTML加图片的方法
- Android TextView显示Html类解析的网页和图片及自定义标签用法示例
- Android应用中使用ContentProvider扫描本地图片并显示
- 基于Android实现保存图片到本地并可以在相册中显示出来
- Android实现从网络获取图片显示并保存到SD卡的方法
- Android读取assets目录下的所有图片并显示的方法
- Android开发ImageView图片无法显示解决过程
- Android图片处理:识别图像方向并显示实例教程
- Android的ImageButton当显示Drawable图片时就不显示文字
相关文章
Android 个人理财工具二:使用SQLite实现启动时初始化数据
本文主要介绍 Android 使用SQLite实现启动时初始化数据,这里对SQLite 的数据库进行详解,附有示例代码,有兴趣的小伙伴可以参考下2016-08-08Android Flutter在点击事件上添加动画效果实现全过程
这篇文章主要给大家介绍了关于Android Flutter在点击事件上添加动画效果实现的相关资料,通过实例代码介绍的非常详细,对大家学习Android具有一定的参考学习价值,需要的朋友可以参考下2023-03-03Android中ScrollView嵌套GridView的解决办法
前些日子在开发中用到了需要ScrollView嵌套GridView的情况,由于这两款控件都自带滚动条,当他们碰到一起的时候便会出问题,即GridView会显示不全。下面小编给大家分享下解决方案,需要的朋友可以参考下2017-04-04Android Canvas的drawText()与文字居中方案详解
这篇文章主要给大家介绍了关于Android Canvas的drawText()与文字居中方案的相关资料,文中通过示例代码介绍的非常详细,对各位Android开发者们具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧2019-12-12
最新评论