Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android簡易實戰教程--第二十九話《創建圖片副本》

Android簡易實戰教程--第二十九話《創建圖片副本》

編輯:關於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);
    }

}

看看運行結果,創建了一個一模一樣的圖片。

 

\

但是,新創建的圖片是可以做一些“”特效”的,下一話將介紹圖片的特效處理。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved