編輯:關於Android編程
最近在做一個功能開發:當手指觸摸屏幕的時候就出現一種特效。這裡需要要五顏六色的圖片來實現很絢麗效果,今天我來講講如何用一個簡單圖片如圖(1)來實現如圖(2)的效果!
(圖1)
<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+ICA8aW1nIHNyYz0="/uploadfile/Collfiles/20141229/20141229084425210.png" alt="\">
(圖2)
由上面的(圖1)可以知道其中的圖象實際上是沒有顏色的,其實就是白色和透明度來繪制的四個圓的效果圖片!怎麼才能實現右邊圖片的五顏六色的圓的圖像呢!這裡就是設計到了對bitmap圖片處理!下面是對bitmap圖片改變顏色的處理方法:
public static Bitmap change_bitmap_for_curr_color(Bitmap curr_Bitmap, int new_color){ if(null == curr_Bitmap){ return curr_Bitmap; } int BLACK_COLOR = 0xff000000; int start_x = 0; int statr_y = 0; int bitmap_w = curr_Bitmap.getWidth(); int bitmap_h = curr_Bitmap.getHeight(); //Log.d("yu", "FingerMagic_tool change_bitmap_for_curr_color new_color="+new_color);//0xFFFF0000 new_color &= 0x00ffffff;/× 去掉要改變顏色的透明度,這裡只是改變該圖片顏色,其透明度不改變 ×/ //Log.d("FingerMagic_tool", "FingerMagic_tool change_bitmap_for_curr_color new_color="+new_color); int []pixels = new int[bitmap_w * bitmap_h]; curr_Bitmap.getPixels(pixels, 0, bitmap_w, 0, 0, bitmap_w,bitmap_h);/× 這裡是取出要改變bitmap的像素數據 ×/ int alph = 0; int color_int = 0; int curr_index = 0; for(int i = 0; i < bitmap_h; i++){/× 這裡就是改變取出的bitnap的像素數據,是其顏色是我們要改變的顏色 ×/ for(int j = 0; j < bitmap_w; j++){ curr_index = bitmap_w * i + j; color_int = pixels[curr_index]; if(0 == color_int){ /× 如果該像素點沒有顏色,全透明則不處理 ×/ continue; } alph = color_int & BLACK_COLOR; /× 取出該像素點的透明度值 ×/ if(alph == 0){/× 如果這個像素點是全透明的則不做處理 ×/ continue; } color_int = new_color | alph;/× 把我們需要的顏色加上該像素點的透明度來取代原來的像素點 ×/ pixels[curr_index] = color_int; } }/× 最後利用我們修改完成的像素數據值來創建我們需要的圖片 ×/ Bitmap result = Bitmap.createBitmap(pixels, bitmap_w, bitmap_h, Config.ARGB_8888); //result.setPixels(pixels, 0, bitmap_w, 0, 0, bitmap_w, bitmap_h); return result; }
這就可以了!所有的關鍵點,我都加上注釋了。
不過,對於上面的代碼還是存在缺陷的,請不要用來處理超大的bitmap, 很有可能溢出哦!還有,如果處理不只一個小圖片,請開辟線程來處理哦。
這些天都在浪幾乎沒撸代碼,然後今天下午找了個下午茶時間捯饬了個自定義View來實現 很多APP都有卻沒怎麼公開的一個“進度通知的View”實現po
360手機助手使用的 DroidPlugin,它是360手機助手團隊在Android系統上實現了一種插件機制。它可以在無需安裝、修改的情況下運行APK文件,此機制對改進大
了解二維碼這個東西還是從微信中,當時微信推出二維碼掃描功能,自己感覺挺新穎的,從一張圖片中掃一下竟然能直接加好友,不可思議啊,那時候還不了解二維碼,呵呵,然後
本文實例為大家分享了TextView繪制背景的方法,供大家參考,具體內容如下效果:實現流程:1.初始化:對畫筆進行設置mPaintIn = new Paint();mPa