android-使用代码把两个图像结合起来

问题描述

使用代码把两个图像结合起来

我使用下面的代码把两个图像结合起来。

 Bitmap pic = BitmapFactory.decodeResource(getResources(), R.drawable.me);
    Bitmap map = BitmapFactory.decodeResource(getResources(), R.drawable.static);
    Canvas comboImage = new Canvas(map);
    Bitmap out1 = null ;
    comboImage.setBitmap(out1);
    comboImage.drawBitmap(pic, 600, 350, null);

假定我可以使用 bitmap out1 获取最后的图像,但是 comboImage.setBitmap(out1); 这一行引发崩溃。没有这一行不能看到任何图像。如何获取最后结合图像?

解决方案

Bitmap pic = BitmapFactory.decodeResource(getResources(), R.drawable.me);
Bitmap map = BitmapFactory.decodeResource(getResources(), R.drawable.static);

 **Bitmap out1 = Bitmap.createBitmap(width, height, Config.ARGB_8888);;
Canvas comboImage = new Canvas(out1);
comboImage.drawBitmap(map, 0, 0, null);
comboImage.drawBitmap(pic, 600, 350, null);**

解决方案二:

你是要把两张叠加成一张图?如果是下面的是可行的。

Bitmap bitmap1 = ((BitmapDrawable) getResources().getDrawable( R.drawable.ic_default_slide)).getBitmap();
Bitmap bitmap2 = ((BitmapDrawable) getResources().getDrawable(   R.drawable.ic_slide_player)).getBitmap();

Drawable[] array = new Drawable[2];
array[0] = new BitmapDrawable(bitmap1);
array[1] = new BitmapDrawable(bitmap2);
LayerDrawable la = new LayerDrawable(array);
// 其中第一个参数为层的索引号,后面的四个参数分别为left、top、right和bottom
la.setLayerInset(0, 0, 0, 0, 0);
la.setLayerInset(1, 20, 20, 20, 20);
im.setImageDrawable(la);
时间: 2024-11-05 14:55:54

android-使用代码把两个图像结合起来的相关文章

Android常用代码之普通及系统权限静默安装APK

本文主要介绍程序如何安装apk,包括普通模式安装和系统权限静默安装. 如果是非系统应用请直接查看:Android常用代码之APK root权限静默安装,查看更完美的解决方案. 1.普通模式安装,调用系统Intent,代码如下: Java 1 2 3 4 5 6 public static void install(Context context, String filePath) { Intent i = new Intent(Intent.ACTION_VIEW); i.setDataAndT

Android java代码有错误,获取的list一直为0,问题出在哪里

问题描述 Android java代码有错误,获取的list一直为0,问题出在哪里 package com.example.test; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Activity; import android.content.Intent; import android.content.

Android注册广播的两种方法分析_Android

本文实例分析了Android注册广播的两种方法.分享给大家供大家参考,具体如下: 1. 在AndroidManifest.xml文件中注册. 好处:一旦应用程序被安装到手机里,BroadCast Receiver就开始生效.无论应用程序进程是否运行,运用程序是否在开启状态下都可以接受到广播事件. <receiver android:name=".receiver.SMSReceiver" > <intent-filter android:priority="

Android开发之将两张图片合并为一张图片的方法

本文实例讲述了Android开发之将两张图片合并为一张图片的方法.分享给大家供大家参考,具体如下: 主要操作代码如下: private Bitmap mergeBitmap(Bitmap firstBitmap, Bitmap secondBitmap) { Bitmap bitmap = Bitmap.createBitmap(firstBitmap.getWidth(), firstBitmap.getHeight(),firstBitmap.getConfig()); Canvas can

分享实现Android图片选择的两种方式

Android选择图片的两种方式: 第一种:单张选取 通过隐式启动activity,跳转到相册选择一张返回结果 关键代码如下: 发送请求: private static final int PICTURE = 10086; //requestcode Intent intent = new Intent(); if (Build.VERSION.SDK_INT < 19) {//因为Android SDK在4.4版本后图片action变化了 所以在这里先判断一下 intent.setAction

Android注册广播的两种方法分析

本文实例分析了Android注册广播的两种方法.分享给大家供大家参考,具体如下: 1. 在AndroidManifest.xml文件中注册. 好处:一旦应用程序被安装到手机里,BroadCast Receiver就开始生效.无论应用程序进程是否运行,运用程序是否在开启状态下都可以接受到广播事件. <receiver android:name=".receiver.SMSReceiver" > <intent-filter android:priority="

Android 截取手机屏幕两种实现方法

Android 截取手机屏幕两种实现方法 最近在开发的过程中,遇到了一个需要截取屏幕保存为图片的需求,具体为截取webview的视图保存图片. 方法1:首先想到的思路是利用SDK提供的View.getDrawingCache()方法: public void printScreen(View view) { String imgPath = "/sdcard/test.png"; view.setDrawingCacheEnabled(true); view.buildDrawingC

android 邮件-android通过代码获取当前系统中安装的所有邮件应用列表

问题描述 android通过代码获取当前系统中安装的所有邮件应用列表 想通过代码得到当前系统所有可以收发邮件的应用,通过列表显示出来,求大神指导,有知道的朋友请知道下获取的方法,目前我能想到的就是获取当前所有安装的应用通过关键字过滤,不过感觉这种方法不是很好,不能保证所有过滤出来的都是邮件应用.

android 在代码中如何设置 根视图的宽高?

问题描述 android 在代码中如何设置 根视图的宽高? android 在代码中如何设置 根视图的宽高? 如何设置视图container的宽高? public void popEdit(EditText _edit) { // edit=_edit; LinearLayout container=new LinearLayout(cont); container.setOrientation(LinearLayout.HORIZONTAL); LinearLayout.LayoutParam