合并俩张图片
来源:互联网 发布:淘宝商家开通花呗要求 编辑:程序博客网 时间:2024/04/28 02:12
import
android.app.Activity;
import
android.graphics.Bitmap;
import
android.graphics.Canvas;
import
android.graphics.Rect;
import
android.graphics.drawable.BitmapDrawable;
import
android.os.Bundle;
import
android.os.Handler;
import
android.os.Handler.Callback;
import
android.os.Message;
import
android.view.View;
import
android.view.View.OnClickListener;
import
android.widget.Button;
import
android.widget.ImageView;
public
class
MainActivity
extends
Activity {
private
ImageView ivBmp1;
private
ImageView ivBmp2;
private
ImageView ivBmpMerge;
private
Button mergeBtn;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.main);
initUi();
}
private
void
initUi() {
ivBmp1 = (ImageView) findViewById(R.id.iv_bmp1);
ivBmp2 = (ImageView) findViewById(R.id.iv_bmp2);
ivBmpMerge = (ImageView) findViewById(R.id.iv_bmp_merge);
mergeBtn = (Button) findViewById(R.id.btn_merge);
mergeBtn.setOnClickListener(
new
OnClickListener() {
@Override
public
void
onClick(View v) {
showMergeBitmap();
}
});
}
private
Handler handler =
new
Handler(
new
Callback() {
@Override
public
boolean
handleMessage(Message msg) {
Bitmap bitmap = (Bitmap) msg.obj;
ivBmpMerge.setImageBitmap(bitmap);
return
false
;
}
});
/**
* 显示合并的图
*/
protected
void
showMergeBitmap() {
new
Thread(
new
Runnable() {
@Override
public
void
run() {
Bitmap bitmap = mergeBitmap();
Message messge = handler.obtainMessage();
messge.obj = bitmap;
handler.sendMessage(messge);
}
}).start();
}
/*
* 使用Canvas合并Bitmap
*/
private
Bitmap mergeBitmap() {
// 获取ImageView上得Bitmap图片
Bitmap bmp1 = ((BitmapDrawable) ivBmp1.getDrawable()).getBitmap();
Bitmap bmp2 = ((BitmapDrawable) ivBmp2.getDrawable()).getBitmap();
// 创建空得背景bitmap
// 生成画布图像
Bitmap resultBitmap = Bitmap.createBitmap(ivBmpMerge.getWidth(),
ivBmpMerge.getHeight(), Bitmap.Config.RGB_565);
Canvas canvas =
new
Canvas(resultBitmap);
// 使用空白图片生成canvas
// 将bmp1绘制在画布上
Rect srcRect =
new
Rect(
0
,
0
, bmp1.getWidth(), bmp1.getHeight());
// 截取bmp1中的矩形区域
Rect dstRect =
new
Rect(
0
,
0
, ivBmpMerge.getWidth() /
2
,
ivBmpMerge.getHeight());
// bmp1在目标画布中的位置
canvas.drawBitmap(bmp1, srcRect, dstRect,
null
);
// 将bmp2绘制在画布上
srcRect =
new
Rect(
0
,
0
, bmp2.getWidth(), bmp2.getHeight());
// 截取bmp1中的矩形区域
dstRect =
new
Rect(ivBmpMerge.getWidth() /
2
,
0
, ivBmpMerge.getWidth(),
ivBmpMerge.getHeight());
// bmp2在目标画布中的位置
canvas.drawBitmap(bmp2, srcRect, dstRect,
null
);
// 将bmp1,bmp2合并显示
return
resultBitmap;
}
}
运行效果
阅读全文
0 0
- 合并俩张图片
- 合并两张图片
- images2张图片合并
- IOS 二张图片合并
- OpenCV 合并两张图片
- 合并两张图片(水印效果)
- C# 合并两张图片的方法
- android 两张图片合并作背景图
- android-合并两张图片bitmap
- OpenCV两张图片的合并
- java实现把两张图片合并
- android-合并两张图片bitmap
- C#.net 2张图片合并输出
- 用matlab实现多张图片合并
- [转]OpenCV两张图片的合并
- PHP合并两张图片的实现
- java实现把两张图片合并
- ios合并两张图片(叠加两张图片 重合两张图片)
- HDU 1452 Happy 2004
- ambari自定义服务(三)服务配置
- Android开发中Gradle的高级用法
- POJ 1456 Supermarket (贪心 + 暴力 or 优先权队列 or 并查集)
- oozie更改默认数据库为mysql
- 合并俩张图片
- 【Python3.6爬虫学习记录】(十四)多线程爬虫模板总结
- JAVA tcp聊天室小实验
- springmvc基于注解的定时任务
- Java/Android合法完整类名正则表达式
- Java爬虫系列之二网页解析【爬取知乎首页信息】
- meta 元标签的常用用法
- 自定义服务(四)命令实现的脚本
- 往本地路径写数据