日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Android中圖像特效處理實例教程

Android中有很多圖片特效處理技巧,比如圓角、倒影,今天為大家分享一個實例,本例主要是先獲取壁紙(getWallpaper()),然后對當(dāng)前壁紙的一些特效處理。

成都創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、網(wǎng)站制作、漳州網(wǎng)絡(luò)推廣、小程序開發(fā)、漳州網(wǎng)絡(luò)營銷、漳州企業(yè)策劃、漳州品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供漳州建站搭建服務(wù),24小時服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com

第一步:新建一個Android工程命名為ImageDemo,工程結(jié)構(gòu)如下:

第二步:新建一個.java文件,命名為ImageUtil.java,在里面定義一些圖片處理方法,代碼如下:

 
 
 
  1. package com.android.tutor;  
  2. import android.graphics.Bitmap;  
  3. import android.graphics.Canvas;  
  4. import android.graphics.LinearGradient;  
  5. import android.graphics.Matrix;  
  6. import android.graphics.Paint;  
  7. import android.graphics.PixelFormat;  
  8. import android.graphics.PorterDuffXfermode;  
  9. import android.graphics.Rect;  
  10. import android.graphics.RectF;  
  11. import android.graphics.Bitmap.Config;  
  12. import android.graphics.PorterDuff.Mode;  
  13. import android.graphics.Shader.TileMode;  
  14. import android.graphics.drawable.Drawable;  
  15. public class ImageUtil { 
  16.  
  17. //放大縮小圖片  
  18. public static Bitmap zoomBitmap(Bitmap bitmap,int w,int h){  
  19. int width = bitmap.getWidth();  
  20. int height = bitmap.getHeight();  
  21. Matrix matrix = new Matrix();  
  22. float scaleWidht = ((float)w / width);  
  23. float scaleHeight = ((float)h / height);  
  24. matrix.postScale(scaleWidht, scaleHeight);  
  25. Bitmap newbmp = Bitmap.createBitmap(bitmap, 0, 0, width, height, matrix, true);  
  26. return newbmp;  
  27. }  
  28. //將Drawable轉(zhuǎn)化為Bitmap  
  29. public static Bitmap drawableToBitmap(Drawable drawable){  
  30. int width = drawable.getIntrinsicWidth();  
  31. int height = drawable.getIntrinsicHeight();  
  32. Bitmap bitmap = Bitmap.createBitmap(width, height,  
  33. drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888  
  34. : Bitmap.Config.RGB_565);  
  35. Canvas canvas = new Canvas(bitmap);  
  36. drawable.setBounds(0,0,width,height);  
  37. drawable.draw(canvas);  
  38. return bitmap; 
  39.  
  40.  
  41. //獲得圓角圖片的方法  
  42. public static Bitmap getRoundedCornerBitmap(Bitmap bitmap,float roundPx){ 
  43.  
  44. Bitmapoutput = Bitmap.createBitmap(bitmap.getWidth(), bitmap  
  45. .getHeight(), Config.ARGB_8888);  
  46. Canvas canvas = new Canvas(output); 
  47.  
  48. final intcolor = 0xff424242;  
  49. final Paint paint = new Paint();  
  50. final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());  
  51. final RectF rectF = new RectF(rect); 
  52.  
  53. paint.setAntiAlias(true);  
  54. canvas.drawARGB(0, 0, 0, 0);  
  55. paint.setColor(color);  
  56. canvas.drawRoundRect(rectF, roundPx, roundPx, paint); 
  57.  
  58. paint.setXfermode(newPorterDuffXfermode(Mode.SRC_IN));  
  59. canvas.drawBitmap(bitmap, rect, rect, paint); 
  60.  
  61. returnoutput;  
  62. }  
  63. //獲得帶倒影的圖片方法  
  64. public static Bitmap createReflectionImageWithOrigin(Bitmap bitmap){  
  65. final int reflectionGap = 4;  
  66. int width = bitmap.getWidth();  
  67. int height = bitmap.getHeight(); 
  68.  
  69. Matrixmatrix = new Matrix();  
  70. matrix.preScale(1, -1); 
  71.  
  72. BitmapreflectionImage = Bitmap.createBitmap(bitmap,  
  73. 0, height/2, width, height/2, matrix, false); 
  74.  
  75. BitmapbitmapWithReflection = Bitmap.createBitmap(width, (height + height/2),Config.ARGB_8888); 
  76.  
  77. Canvascanvas = new Canvas(bitmapWithReflection);  
  78. canvas.drawBitmap(bitmap, 0, 0, null);  
  79. Paint deafalutPaint = new Paint();  
  80. canvas.drawRect(0, height,width,height + reflectionGap,  
  81. deafalutPaint); 
  82.  
  83. canvas.drawBitmap(reflectionImage,0, height + reflectionGap, null); 
  84.  
  85. Paint paint= new Paint();  
  86. LinearGradient shader = new LinearGradient(0,  
  87. bitmap.getHeight(), 0, bitmapWithReflection.getHeight()  
  88. + reflectionGap, 0x70ffffff, 0x00ffffff, TileMode.CLAMP);  
  89. paint.setShader(shader);  
  90. // Set the Transfer mode to be porter duff and destination in  
  91. paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));  
  92. // Draw a rectangle using the paint with our linear gradient  
  93. canvas.drawRect(0, height, width, bitmapWithReflection.getHeight()  
  94. + reflectionGap, paint); 
  95.  
  96. returnbitmapWithReflection;  
  97.  
  98. }  

第三步:修改main.xml布局文件,主要放了兩個ImageView控件,代碼如下:

 
 
 
  1.   
  2. android:orientation="vertical"  
  3. android:layout_width="fill_parent"  
  4. android:layout_height="fill_parent"  
  5. >  
  6. android:id="@+id/image01"  
  7. android:layout_width="wrap_content"  
  8. android:layout_height="wrap_content"  
  9. android:padding="10px"  
  10. />  
  11. android:id="@+id/image02"  
  12. android:layout_width="wrap_content"  
  13. android:layout_height="wrap_content"  
  14. android:padding="10px"  
  15. />  
  16.   

第四步:修改主核心程序,ImageDemo.java,代碼如下:

 
 
 
  1. package com.android.tutor;  
  2. import android.app.Activity;  
  3. import android.graphics.Bitmap;  
  4. import android.graphics.drawable.Drawable;  
  5. import android.os.Bundle;  
  6. import android.widget.ImageView;  
  7. public class Imagedemo extends Activity {  
  8. private ImageView mImageView01,mImageView02; 
  9.  
  10. public voidonCreate(Bundle savedInstanceState) {  
  11. super.onCreate(savedInstanceState);  
  12. setContentView(R.layout.main);  
  13. setupViews();  
  14.  
  15. private voidsetupViews(){  
  16. mImageView01 = (ImageView)findViewById(R.id.image01);  
  17. mImageView02 = (ImageView)findViewById(R.id.image02); 
  18.  
  19. //獲取壁紙返回值是Drawable  
  20. Drawable drawable = getWallpaper();  
  21. //將Drawable轉(zhuǎn)化為Bitmap  
  22. Bitmap bitmap = ImageUtil.drawableToBitmap(drawable);  
  23. //縮放圖片  
  24. Bitmap zoomBitmap = ImageUtil.zoomBitmap(bitmap, 100, 100);  
  25. //獲取圓角圖片  
  26. Bitmap roundBitmap = ImageUtil.getRoundedCornerBitmap(zoomBitmap, 10.0f);  
  27. //獲取倒影圖片  
  28. Bitmap reflectBitmap = ImageUtil.createReflectionImageWithOrigin(zoomBitmap);  
  29. //這里可以讓Bitmap再轉(zhuǎn)化為Drawable  
  30. // Drawable roundDrawable = new BitmapDrawable(roundBitmap);  
  31. // Drawable reflectDrawable = new BitmapDrawable(reflectBitmap);  
  32. // mImageView01.setBackgroundDrawable(roundDrawable);  
  33. // mImageView02.setBackgroundDrawable(reflectDrawable); 
  34.  
  35. mImageView01.setImageBitmap(roundBitmap);  
  36. mImageView02.setImageBitmap(reflectBitmap);  
  37.  
  38.  
  39. }  

第五步:運(yùn)行上述工程,查看效果如下:


網(wǎng)頁標(biāo)題:Android中圖像特效處理實例教程
網(wǎng)頁地址:http://www.5511xx.com/article/coesoig.html