編輯:關於Android編程
承接第二十八話加載大圖片,本篇介紹如何創建一個圖片的副本。
安卓中加載的原圖是無法對其修改的,因為默認權限是只讀的。但是通過創建副本,就可以對其做一些修改,繪制等了。
首先創建一個簡單的布局。一個放原圖,一個放副本copy
package com.itandroid.copy;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.view.Menu;
import android.widget.ImageView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//這個對象是只讀的Decode a file path into a bitmap.沒法做修改
Bitmap bmSrc = BitmapFactory.decodeFile("sdcard/photo3.jpg");
//創建圖片副本,才可以對圖片修改
//1.在內存中創建一個與原圖一模一樣大小的bitmap對象,創建與原圖大小一致的白紙。此時沒有內容,因為沒有繪制,但是這時的Bitmap對象是可讀可寫的,即可以對其修改
Bitmap bmCopy = Bitmap.createBitmap(bmSrc.getWidth(), bmSrc.getHeight(), bmSrc.getConfig());//第三個參數表示一些配置信息,設置與原來圖片一樣
/** 對該位圖對象進行繪制 **/
//2.創建畫筆對象
Paint paint = new Paint();
//3.創建畫板對象,把白紙(副本Bitmap)鋪在畫板上(這裡放原圖是不可以的)
Canvas canvas = new Canvas(bmCopy);
//4.開始作畫,把原圖的內容繪制在白紙上;此時副本就有了與原圖一模一樣的內容
canvas.drawBitmap(bmSrc, new Matrix(), paint);//第二個參數是一個矩陣
ImageView iv_src = (ImageView) findViewById(R.id.iv_src);
ImageView iv_copy = (ImageView) findViewById(R.id.iv_copy);
iv_src.setImageBitmap(bmSrc);
iv_copy.setImageBitmap(bmCopy);
}
}

但是,新創建的圖片是可以做一些“”特效”的,下一話將介紹圖片的特效處理。
Android編程之簡單計時器實現方法
本文實例講述了Android編程之簡單計時器實現方法。分享給大家供大家參考,具體如下:這裡利用ContextMenu(上下文菜單),Chronometer實現簡單計數器。
Launcher3 拖動圖標筆記
本文主要記錄了Launcher3拖動時的流程和代碼記錄,在桌面圖標拖動時會引起圖標的重排,拖動時受影響的圖標在文中由item或cell來表示。 圖標點擊效果和搖動效
微信開發教程—進入開發者模式
進入開發者模式後就可以導入接口信息,這樣在服務上增加的功能就能生效;如果你不想太折騰直接使用現成的微信公眾賬號功能可以使用楚盟提供的第三方微信公眾平台;免費
簡單好用的PHP分頁類
本文為大家分享了兩段PHP分頁類,很實用,供大家參考,具體內容如下<?php class Page { private $total; //總記錄