设置图片的透明度从左到右渐变
生活随笔
收集整理的這篇文章主要介紹了
设置图片的透明度从左到右渐变
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、設置圖片的透明度從左到右漸變
/*** 設置圖片的透明度從左到右漸變,使右邊緣平滑過渡(注意只跟著x坐標變)** @param num 范圍為0-100,0為全透明,100為不透明*/public static Bitmap getTransAlphaBitmap(Bitmap sourceImg, float num) {if (sourceImg == null) {return null;}int width = sourceImg.getWidth();int height = sourceImg.getHeight();int[] bitArr = new int[width * height];sourceImg.getPixels(bitArr, 0, width, 0, 0, width, height);float number = num;int start = width / DEFAULT_PERCENT;float range = width - start;try {float step = (number * 1.0f) / range;for (int j = 0; j < height; j++) {number = num;for (int i = start + j * width; i < width * (j + 1); i++) {number = number - step;float alpha = number * ALPAH_FULL / NUMBER_FULL;bitArr[i] = ((int) alpha << DEFAULT_BIT) | (bitArr[i] & DEFAULT_ALPHA);}}return Bitmap.createBitmap(bitArr, width, height, Bitmap.Config.ARGB_8888);} catch (Throwable e) {return sourceImg;}}二、設置圖片的透明度從上到下漸變
/*** 設置圖片的透明度從上到下漸變,使下邊緣平滑過渡(注意只跟著Y坐標變)** @param sourceImg* @return*/public static Bitmap getTransAlphaBitmap(Bitmap sourceImg) {int[] argb = new int[sourceImg.getWidth() * sourceImg.getHeight()];sourceImg.getPixels(argb, 0, sourceImg.getWidth(), 0, 0, sourceImg.getWidth(), sourceImg.getHeight());// 獲得圖片的ARGB值//number的范圍為0-100,0為全透明,100為不透明float number = 100;//透明度數值float alpha = number * 255 / 100;//圖片漸變的范圍(只設置圖片一半范圍由上到下漸變,上面不漸變,即接近邊緣的那一半)float range = sourceImg.getHeight() / 2.0f;//透明度漸變梯度,每次隨著Y坐標改變的量,因為最終在邊緣處要變為0float pos = (number * 1.0f) / range;//循環開始的下標,設置從什么時候開始改變int start = sourceImg.getWidth() * (sourceImg.getHeight() - (int) range);for (int i = start; i < argb.length; i++) {//同一行alpha數值不改變,因為是隨著Y坐標從上到下改變的if (i % sourceImg.getWidth() == 0) {number = number - pos;alpha = number * 255 / 100;}argb[i] = ((int) alpha << 24) | (argb[i] & 0x00FFFFFF);}sourceImg = Bitmap.createBitmap(argb, sourceImg.getWidth(), sourceImg.getHeight(), Bitmap.Config.ARGB_8888);return sourceImg;}總結
以上是生活随笔為你收集整理的设置图片的透明度从左到右渐变的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 千兆以太网协议简介
- 下一篇: CSS W3C 统一验证工具