Android 将若干张图片拼接在一起形成一个全新的图片
2014-02-21 16:36
344 查看
目的:使用Android技术将若干张图片拼接成为一张图片。
最开始的两张图如下所示:
拼接后的图片如下图所示:
这样就把两张图片拼接成为一张了。
拼接步骤:
1.使用Bitmap创建一个空的Bitmap(内存区域)并定义这个bitmap的宽和高。对应的代码:
2.实例化一个Canvas并将创建好的空的Bitmap放到画布中。对应代码:
3.使用canvas将要拼接的图片绘制到这个空的bitmap中。对应代码:
4.返回组合后的Bitmap,并在View的onDraw方法中绘制,代码如下:
下面贴出完整代码:
1.JointBitmapView.java
2.JointBitmapActivity.java
最开始的两张图如下所示:
拼接后的图片如下图所示:
这样就把两张图片拼接成为一张了。
拼接步骤:
1.使用Bitmap创建一个空的Bitmap(内存区域)并定义这个bitmap的宽和高。对应的代码:
Bitmap.createBitmap(width,height,Bitmap.Config.ARGB_8888);
2.实例化一个Canvas并将创建好的空的Bitmap放到画布中。对应代码:
Canvas canvas = new Canvas(bitmap);
3.使用canvas将要拼接的图片绘制到这个空的bitmap中。对应代码:
canvas.drawBitmap(bit1, 0, 0, null); canvas.drawBitmap(bit2, 0, bit1.getHeight(), null);
4.返回组合后的Bitmap,并在View的onDraw方法中绘制,代码如下:
@Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawBitmap(bitmap, 0, 0, null); bitmap.recycle(); }
下面贴出完整代码:
1.JointBitmapView.java
package cn.yw.lib.graphics;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.view.View;
/**
* 将多张图片拼接在一起
* @author yw-tony
*
*/
public class JointBitmapView extends View{
private Bitmap bitmap;
public JointBitmapView(Context context,Bitmap bit1,Bitmap bit2) {
super(context);
bitmap = newBitmap(bit1,bit2);
}
/**
* 拼接图片
* @param bit1
* @param bit2
* @return 返回拼接后的Bitmap
*/
private Bitmap newBitmap(Bitmap bit1,Bitmap bit2){
int width = bit1.getWidth();
int height = bit1.getHeight() + bit2.getHeight();
//创建一个空的Bitmap(内存区域),宽度等于第一张图片的宽度,高度等于两张图片高度总和
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
//将bitmap放置到绘制区域,并将要拼接的图片绘制到指定内存区域
Canvas canvas = new Canvas(bitmap);
canvas.drawBitmap(bit1, 0, 0, null); canvas.drawBitmap(bit2, 0, bit1.getHeight(), null);
return bitmap;
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawBitmap(bitmap, 0, 0, null);
bitmap.recycle();
}
}
2.JointBitmapActivity.java
package cn.yw.lib.graphics; import cn.yw.lib.R; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; /** * 图片拼接 * * @author yw-tony * */ public class JointBitmapActivity extends Activity { private JointBitmapView view; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /** * 这里使用BitmapFactory.decodeStream(InputStream is);方法加载图片可以有效的防止 * 当内存过大时出现内存溢出的情况 */ Bitmap bit1 = BitmapFactory.decodeStream(getApplicationContext() .getResources().openRawResource(R.drawable.ic_launcher)); Bitmap bit2 = BitmapFactory.decodeStream(getApplicationContext() .getResources().openRawResource(R.drawable.ic_launcher)); view = new JointBitmapView(this, bit1, bit2); setContentView(view); } }
相关文章推荐
- Android播放多张图片形成一个动画效果
- Android 绘制一个Loading动画__向图片中缓慢填充颜色,从而形成动画效果
- Fresco介绍: 一个全新的Android图片加载库
- Android开发中如何把多个JSONArray组合(拼接)在一起,组成一个整体的字符串。
- Android怎样播放多张图片形成一个动画
- Android 绘制一个Loading动画__向图片中缓慢填充颜色,从而形成动画效果
- android怎样播放多张图片形成一个动画
- Android通过播放多张图片形成一个动画 分类: Android 2015-04-24 14:05 16人阅读 评论(0) 收藏
- Android播放多张图片形成的一个动画示例
- Android通过播放多张图片形成一个动画
- Android怎样播放多张图片形成一个动画
- 【Android开发VR实战】一.给用户呈现一个360°全景图片
- Android从相册选择一个图片、剪切、上传
- 用Android Smart Image View做的一个网络图片浏览的Demo
- Android进阶封装之一个类实现兼容Android 6.0权限、适配Android7.0 拍照: 相机与相册上传图片就用我好啦!
- android截屏:保存一个view的内容为图片并存放到SD卡
- Android 关于重写一个居中的Dialog时,背景图片显示不全的问题。Dialog的style属性介绍
- Android中改变一个图片的透明度
- android stutio 使用viewpager创建一个滑动图片浏览app
- android实现一个图片验证码倒计时功能