編輯:關於Android編程
說起水印其實很簡單,就是在一張圖片上面畫上另一張圖片或文字
實現如下:
package com.tang.watermark;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.PixelFormat;
import android.graphics.Bitmap.Config;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends Activity {
ImageView imageView;
Bitmap mark;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = (ImageView) findViewById(R.id.imageView1);
imageView.setImageResource(R.drawable.heihei);
mark = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Bitmap temp = watermark(drawableToBitmap(imageView.getDrawable()),mark,50,100);
imageView.setImageBitmap(temp);
}
});
}
/**
* 將bitmap轉換為Drawable
* @param bitmap
* @return
*/
public static Drawable bitmapToDrawable(Bitmap bitmap)
{
BitmapDrawable bd = new BitmapDrawable(bitmap);
return bd;
}
/**
* @param src
* @param bg
* @param color
* @return
*/
public static Bitmap watermark(Bitmap src,Bitmap mark,int x,int y)
{
int w = src.getWidth();
int h = src.getHeight();
Bitmap newb = Bitmap.createBitmap( w, h, Config.ARGB_8888 );
Canvas cv = new Canvas(newb);
cv.drawBitmap(src, 0, 0, null );
cv.drawBitmap(mark,x, y, null );
cv.save( Canvas.ALL_SAVE_FLAG );//保存
cv.restore();//存儲
return newb;
}
/**
* Drawable 轉換為Bitmap
* @param drawable
* @return
*/
public static Bitmap drawableToBitmap(Drawable drawable) {
// 取 drawable 的長寬
int w = drawable.getIntrinsicWidth();
int h = drawable.getIntrinsicHeight();
// 取 drawable 的顏色格式
Bitmap.Config config = drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888
: Bitmap.Config.RGB_565;
Bitmap bitmap = Bitmap.createBitmap(w, h, config);
Canvas canvas = new Canvas(bitmap);
drawable.setBounds(0, 0, w, h);
drawable.draw(canvas);
return bitmap;
}
}
教你寫Android網絡框架之基本架構
前言 在前段時間,偶然參加了博客之星的評選,也偶然的進入到了鴻洋和任玉剛兩知名博主的開發群,感受到了很濃厚的技術探討氛圍,於是自己也冒出了寫一些系列博客的想
Android中圖案解鎖的設計原理和實現過程
Android中圖案解鎖首先要理解圖案的實現原理,上一張圖: 由上圖,可以看出,圖案中手勢的記錄是1-9或0-8的,保存的順序就是密碼,當然有些是可以重復的,為了安全,
Android Studio多個module導入AAR庫
介紹有時候由於需要一些自定義之後的開源庫,無法使用jCenter裡面的官方庫,又懶得自己搭建Maven倉庫,所以我們想要自己在項目裡面直接導入本地的AAR庫。通用方法和問
Android使用SQLite數據庫的簡單實例
先畫個圖,了解下Android下數據庫操作的簡單流程:1.首先,寫一個自己的數據庫操作幫助類,這個類繼承自Android自帶的SQLiteOpenHelper.2.在自己