文档章节

图片的拷贝

chenruibing
 chenruibing
发布于 2015/05/28 00:45
字数 476
阅读 31
收藏 1

获取资源目录下的图片   getResources()应该是资源文件的目录路径

package com.itheima.copybitmap;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;

public class MainActivity extends Activity {
	private ImageView iv1,iv2;
	private Bitmap alterBitmap;
	private Bitmap srcBmp;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		iv1 = (ImageView) findViewById(R.id.iv1);
		iv2 = (ImageView) findViewById(R.id.iv2);
		//给第一个imageview默认设置一个位图
		//获取资源目录下的图片   getResources()应该是资源文件的目录路径
		//这里是decodeResource   而不是decodeFile
		srcBmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
		iv1.setImageBitmap(srcBmp);
		//创建原图的一个副本。 可修改  创建的是一个空白的图形。
		//位图的配置其实就是格式  有32位图  单色位图等等
		//srcBmp.getConfig()  指的是和原位图一致的配置
		alterBitmap = Bitmap.createBitmap(srcBmp.getWidth()*2, srcBmp.getHeight()*2,srcBmp.getConfig());
	}
	/**
	 * 创建原图 bm的一个拷贝。副本
	 * @param view
	 */
	public void click(View view){
		//1.准备一个画板  在上面放上准备好的 空白的位图
		Canvas canvas = new Canvas(alterBitmap);
		//2.准备一个画笔
		Paint paint = new Paint();
		paint.setColor(Color.BLACK);
		//3.画画
		Matrix m = new Matrix(); //按照1:1的方式进行画画
		//指定水平和竖直方向的缩放比例,上面副本长和宽都要乘以2,要不无法完整显示
		//默认把原图按照1:1的比例画在空白副本上,这里可以设置为自己指定的比例
		m.setScale(2.0f, 2.0f);
		//这里是srcBmp 而不是alterBitmap
		//调用这个方法来画的时候,图形是已经确定好
		//就是srcBmp对于图形,按照Matrix指定的模式画出来
		canvas.drawBitmap(srcBmp, m, paint);
		iv2.setImageBitmap(alterBitmap);//把原图的副本设置到界面上。
	}
}



<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:onClick="click"
        android:text="拷贝一个位图" />

    <ImageView
        android:id="@+id/iv1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <ImageView
        android:id="@+id/iv2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>



© 著作权归作者所有

上一篇: 图片的旋转
下一篇: 图片的镜子效果
chenruibing
粉丝 12
博文 203
码字总数 109101
作品 0
潮州
私信 提问
Python 中读取和保存图像方法汇总及其区别

方法一:利用PIL中的Image函数,这个函数读取出来不是array格式 这时候需要用 np.asarray(im) 或者 np.array()函数 区别是 np.array() 是深拷贝,np.asarray() 是浅拷贝 关于深拷贝和浅拷贝...

xjtuhit
2018/07/17
0
0
使用 x86 汇编实现 C# 的快速内存拷贝

介绍 大家好,我是Oleksandr Karpov,这个是我第一次发表文章,希望大家喜欢。 在这我将为大家展示和介绍怎么样在C#和.NET下使用汇编秒速拷贝数据,在我是实例里面我用了一运用程序创建了一段...

oschina
2014/12/20
6.2K
21
iOS开发常用技术底层实现(精简概述)

(1)RunTime总结: oc动态性, 运行时将代码转化为runtime的C代码 RunTime运行流程: 生成对应objc_msgSend方法 isa指针查看当前类有没有这个方法, 之后寻找父类, 每个方法SEL(方法选择器)对应I...

铁头娃_e245
2018/07/08
0
0
【php增删改查实例】第二十三节 - PHP文件上传

22. PHP文件上传 22.1 资源文件 将这三个东西拷贝项目的根目录。 拷贝完毕后,打开upload.html: 现在,我们在项目的根目录去编写一个upload.php。 22.4 文件上传 在PHP中,文件上传的时候会默...

剽悍一小兔
2018/06/07
0
0
linux基础,zip、tar

注:在压缩目录是,如果只写目录名,也会生成压缩文件,但是,压缩文件无内容 zip压缩工具 zip 压缩文件.zip 源文件 zip -r xx.zip 3.txt xxxx(目录) 加参数-r 压缩目录 unzip 1.txt.zip ...

bs_xyz
2017/11/08
11
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring boot 静态资源访问

0. 两个配置 spring.mvc.static-path-patternspring.resources.static-locations 1. application中需要先行的两个配置项 1.1 spring.mvc.static-path-pattern 这个配置项是告诉springboo......

moon888
今天
3
0
hash slot(虚拟桶)

在分布式集群中,如何保证相同请求落到相同的机器上,并且后面的集群机器可以尽可能的均分请求,并且当扩容或down机的情况下能对原有集群影响最小。 round robin算法:是把数据mod后直接映射...

李朝强
今天
4
0
Kafka 原理和实战

本文首发于 vivo互联网技术 微信公众号 https://mp.weixin.qq.com/s/bV8AhqAjQp4a_iXRfobkCQ 作者简介:郑志彬,毕业于华南理工大学计算机科学与技术(双语班)。先后从事过电子商务、开放平...

vivo互联网技术
今天
20
0
java数据类型

基本类型: 整型:Byte,short,int,long 浮点型:float,double 字符型:char 布尔型:boolean 引用类型: 类类型: 接口类型: 数组类型: Byte 1字节 八位 -128 -------- 127 short 2字节...

audience_1
今天
9
0
太全了|万字详解Docker架构原理、功能及使用

一、简介 1、了解Docker的前生LXC LXC为Linux Container的简写。可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。相当于C++中的NameSpa...

Java技术剑
今天
27
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部