青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

life02

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  197 隨筆 :: 3 文章 :: 37 評論 :: 0 Trackbacks

http://06peng.com/read.php/52.htm

整理了一下目前Android開發中圖片的各種處理方法:

Java代碼
        
  1.    /** 
  2.     
  3.      * 使頭像變灰 
  4.     
  5.      * @param drawable 
  6.     
  7.      */  
  8.     
  9.     public static void porBecomeGrey(ImageView imageView, Drawable drawable) {  
  10.     
  11.         drawable.mutate();      
  12.     
  13.         ColorMatrix cm = new ColorMatrix();      
  14.     
  15.         cm.setSaturation(0);      
  16.     
  17.         ColorMatrixColorFilter cf = new ColorMatrixColorFilter(cm);      
  18.     
  19.         drawable.setColorFilter(cf);   
  20.     
  21.         imageView.setImageDrawable(drawable);  
  22.     
  23.     }  

 

Java 代碼復制內容到剪貼板
        
  1. Drawable drawable = new FastBitmapDrawable(bitmap);    
Java 代碼復制內容到剪貼板
        
  1. public byte[] getBitmapByte(Bitmap bitmap){    
  2.     
  3.     ByteArrayOutputStream out = new ByteArrayOutputStream();    
  4.     
  5.     bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);    
  6.     
  7.     try {    
  8.     
  9.         out.flush();    
  10.     
  11.         out.close();    
  12.     
  13.     } catch (IOException e) {    
  14.     
  15.         e.printStackTrace();    
  16.     
  17.     }    
  18.     
  19.     return out.toByteArray();    
  20.     
  21. }    
  22.     
  23.     
  24.     
  25.     
  26.     
  27. public Bitmap getBitmapFromByte(byte[] temp){    
  28.     
  29.     if(temp != null){    
  30.     
  31.         Bitmap bitmap = BitmapFactory.decodeByteArray(temp, 0, temp.length);    
  32.     
  33.         return bitmap;    
  34.     
  35.     }else{    
  36.     
  37.         return null;    
  38.     
  39.     }    
  40.     
  41. }    
Java 代碼復制內容到剪貼板
        
  1. /**
  2.     
  3.      * 將Drawable轉化為Bitmap
  4.     
  5.      * @param drawable
  6.     
  7.      * @return
  8.     
  9.      */  
  10.     
  11.     public static Bitmap drawableToBitmap(Drawable drawable) {  
  12.     
  13.         int width = drawable.getIntrinsicWidth();  
  14.     
  15.         int height = drawable.getIntrinsicHeight();  
  16.     
  17.         Bitmap bitmap = Bitmap.createBitmap(width, height, drawable  
  18.     
  19.                 .getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888  
  20.     
  21.                 : Bitmap.Config.RGB_565);  
  22.     
  23.         Canvas canvas = new Canvas(bitmap);  
  24.     
  25.         drawable.setBounds(0, 0, width, height);  
  26.     
  27.         drawable.draw(canvas);  
  28.     
  29.         return bitmap;  
  30.     
  31.     }  
Java 代碼復制內容到剪貼板
        
  1. /**
  2.     
  3.     * 獲取圖片的倒影
  4.     
  5.     * @param bitmap
  6.     
  7.     * @return
  8.     
  9.     */  
  10.     
  11.     public static Bitmap createReflectionImageWithOrigin(Bitmap bitmap) {  
  12.     
  13.         final int reflectionGap = 4;  
  14.     
  15.         int width = bitmap.getWidth();  
  16.     
  17.         int height = bitmap.getHeight();  
  18.     
  19.   
  20.     
  21.         Matrix matrix = new Matrix();  
  22.     
  23.         matrix.preScale(1, -1);  
  24.     
  25.   
  26.     
  27.         Bitmap reflectionImage = Bitmap.createBitmap(bitmap, 0, height / 2,  
  28.     
  29.                 width, height / 2, matrix, false);  
  30.     
  31.   
  32.     
  33.         Bitmap bitmapWithReflection = Bitmap.createBitmap(width,  
  34.     
  35.                 (height + height / 2), Config.ARGB_8888);  
  36.     
  37.   
  38.     
  39.         Canvas canvas = new Canvas(bitmapWithReflection);  
  40.     
  41.         canvas.drawBitmap(bitmap, 0, 0, null);  
  42.     
  43.         Paint deafalutPaint = new Paint();  
  44.     
  45.         canvas.drawRect(0, height, width, height + reflectionGap, deafalutPaint);  
  46.     
  47.   
  48.     
  49.         canvas.drawBitmap(reflectionImage, 0, height + reflectionGap, null);  
  50.     
  51.   
  52.     
  53.         Paint paint = new Paint();  
  54.     
  55.         LinearGradient shader = new LinearGradient(0, bitmap.getHeight(), 0,  
  56.     
  57.                 bitmapWithReflection.getHeight() + reflectionGap, 0x70ffffff,  
  58.     
  59.                 0x00ffffff, TileMode.CLAMP);  
  60.     
  61.         paint.setShader(shader);  
  62.     
  63.         paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));  
  64.     
  65.         canvas.drawRect(0, height, width, bitmapWithReflection.getHeight()  
  66.     
  67.                 + reflectionGap, paint);  
  68.     
  69.         return bitmapWithReflection;  
  70.     
  71.     }  
Java 代碼復制內容到剪貼板
        
  1. /**
  2.     
  3.     * 把圖片變成圓角  
  4.     
  5.     * @param bitmap 需要修改的圖片  
  6.     
  7.     * @param pixels 圓角的弧度  
  8.     
  9.     * @return 圓角圖片  
  10.     
  11.     */      
  12.     
  13.    public static Bitmap toRoundCorner(Bitmap bitmap, int pixels) {      
  14.     
  15.       
  16.     
  17.        Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888);      
  18.     
  19.        Canvas canvas = new Canvas(output);      
  20.     
  21.       
  22.     
  23.        final int color = 0xff424242;      
  24.     
  25.        final Paint paint = new Paint();      
  26.     
  27.        final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());      
  28.     
  29.        final RectF rectF = new RectF(rect);      
  30.     
  31.        final float roundPx = pixels;      
  32.     
  33.       
  34.     
  35.        paint.setAntiAlias(true);      
  36.     
  37.        canvas.drawARGB(0, 0, 0, 0);      
  38.     
  39.        paint.setColor(color);      
  40.     
  41.        canvas.drawRoundRect(rectF, roundPx, roundPx, paint);      
  42.     
  43.       
  44.     
  45.        paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));      
  46.     
  47.        canvas.drawBitmap(bitmap, rect, rect, paint);      
  48.     
  49.       
  50.     
  51.        return output;      
  52.     
  53.    }    
Java 代碼復制內容到剪貼板
        
  1. /**
  2.     
  3.      * 縮放圖片
  4.     
  5.      * @param bmp
  6.     
  7.      * @param width
  8.     
  9.      * @param height
  10.     
  11.      * @return
  12.     
  13.      */  
  14.     
  15.     public static Bitmap PicZoom(Bitmap bmp, int width, int height) {  
  16.     
  17.         int bmpWidth = bmp.getWidth();  
  18.     
  19.         int bmpHeght = bmp.getHeight();  
  20.     
  21.         Matrix matrix = new Matrix();  
  22.     
  23.         matrix.postScale((float) width / bmpWidth, (float) height / bmpHeght);  
  24.     
  25.   
  26.     
  27.         return Bitmap.createBitmap(bmp, 0, 0, bmpWidth, bmpHeght, matrix, true);  
  28.     
  29.     }  
Java 代碼復制內容到剪貼板
        
  1. /**
  2.     
  3.      * @param photoPath --原圖路經
  4.     
  5.      * @param aFile     --保存縮圖
  6.     
  7.      * @param newWidth  --縮圖寬度
  8.     
  9.      * @param newHeight --縮圖高度
  10.     
  11.      */  
  12.     
  13.     public static boolean bitmapToFile(String photoPath, File aFile, int newWidth, int newHeight) {  
  14.     
  15.         BitmapFactory.Options options = new BitmapFactory.Options();  
  16.     
  17.         options.inJustDecodeBounds = true;  
  18.     
  19.         // 獲取這個圖片的寬和高  
  20.     
  21.         Bitmap bitmap = BitmapFactory.decodeFile(photoPath, options);  
  22.     
  23.         options.inJustDecodeBounds = false;  
  24.     
  25.   
  26.     
  27.         //計算縮放比  
  28.     
  29.         options.inSampleSize = reckonThumbnail(options.outWidth, options.outHeight, newWidth, newHeight);  
  30.     
  31.   
  32.     
  33.         bitmap = BitmapFactory.decodeFile(photoPath, options);  
  34.     
  35.   
  36.     
  37.         try {  
  38.     
  39.             ByteArrayOutputStream baos = new ByteArrayOutputStream();  
  40.     
  41.             bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);  
  42.     
  43.             byte[] photoBytes = baos.toByteArray();  
  44.     
  45.   
  46.     
  47.             if (aFile.exists()) {  
  48.     
  49.                 aFile.delete();  
  50.     
  51.             }  
  52.     
  53.             aFile.createNewFile();  
  54.     
  55.   
  56.     
  57.             FileOutputStream fos = new FileOutputStream(aFile);  
  58.     
  59.             fos.write(photoBytes);  
  60.     
  61.             fos.flush();  
  62.     
  63.             fos.close();  
  64.     
  65.   
  66.     
  67.             return true;  
  68.     
  69.         } catch (Exception e1) {  
  70.     
  71.             e1.printStackTrace();  
  72.     
  73.             if (aFile.exists()) {  
  74.     
  75.                 aFile.delete();  
  76.     
  77.             }  
  78.     
  79.             Log.e("Bitmap To File Fail", e1.toString());  
  80.     
  81.             return false;  
  82.     
  83.         }  
  84.     
  85.     }  
Java 代碼復制內容到剪貼板
        
  1. /**
  2.     
  3.      * 計算縮放比
  4.     
  5.      * @param oldWidth
  6.     
  7.      * @param oldHeight
  8.     
  9.      * @param newWidth
  10.     
  11.      * @param newHeight
  12.     
  13.      * @return
  14.     
  15.      */  
  16.     
  17.     public static int reckonThumbnail(int oldWidth, int oldHeight, int newWidth, int newHeight) {  
  18.     
  19.         if ((oldHeight > newHeight && oldWidth > newWidth)  
  20.     
  21.                 || (oldHeight <= newHeight && oldWidth > newWidth)) {  
  22.     
  23.             int be = (int) (oldWidth / (float) newWidth);  
  24.     
  25.             if (be <= 1)  
  26.     
  27.                 be = 1;  
  28.     
  29.             return be;  
  30.     
  31.         } else if (oldHeight > newHeight && oldWidth <= newWidth) {  
  32.     
  33.             int be = (int) (oldHeight / (float) newHeight);  
  34.     
  35.             if (be <= 1)  
  36.     
  37.                 be = 1;  
  38.     
  39.             return be;  
  40.     
  41.         }  
  42.     
  43.   
  44.     
  45.         return 1;  
  46.     
  47.     }  

Android邊框圓角

XML/HTML 代碼復制內容到剪貼板
        
  1. <?xml version="1.0" encoding="utf-8"?>      
  2.     
  3. <shape xmlns:android="http://schema...android">        
  4.     
  5.     <solid android:color="#000000" />        
  6.     
  7.     <corners android:topLeftRadius="10dp"      
  8.     
  9.                     android:topRightRadius="10dp"        
  10.     
  11.                 android:bottomRightRadius="10dp"      
  12.     
  13.                 android:bottomLeftRadius="10dp"/>        
  14.     
  15. </shape>    

解釋:solid的表示填充顏色,為了簡單,這里用的是黑色。

而corners則是表示圓角,注意的是這里bottomRightRadius是左下角而不是右下角,bottomLeftRadius右下角。
當然上面的效果也可以像下面一樣設置,如下: <corners android:radius="5dp" />  

 

源碼下載:

 

如果有更多的功能和方法,請大家評論指出。

posted on 2012-03-15 13:50 life02 閱讀(557) 評論(0)  編輯 收藏 引用 所屬分類: Android開發
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久不射网站| 亚洲一区二区三区在线看| 欧美精品在线一区二区三区| 欧美在线视频播放| 欧美专区在线播放| 国产欧美一区二区精品仙草咪| 久久综合精品国产一区二区三区| 一区二区三区www| 亚洲最新视频在线| 香蕉久久久久久久av网站| 亚洲欧美日韩综合国产aⅴ| 亚欧美中日韩视频| 欧美jizzhd精品欧美喷水 | 香蕉久久a毛片| 欧美在线视频a| 欧美国产日韩一区二区三区| 一本色道久久综合亚洲二区三区| 国产精品99久久久久久白浆小说| 欧美亚洲视频在线看网址| 免费一级欧美片在线播放| 亚洲福利视频二区| 亚洲国产精品成人精品| 亚洲免费伊人电影在线观看av| 欧美四级剧情无删版影片| 国产精品高潮呻吟久久| 极品尤物一区二区三区| 西西裸体人体做爰大胆久久久| 免费人成精品欧美精品| 日韩一级免费| 欧美中文字幕在线| 欧美日韩精品在线| 在线观看欧美日韩国产| 欧美激情第五页| 日韩视频免费观看高清完整版| 午夜久久福利| 最新国产成人av网站网址麻豆| 亚洲欧美日韩综合aⅴ视频| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲精品永久免费精品| 久久精品亚洲一区二区| 国产精品亚洲不卡a| 亚洲免费久久| 欧美高清一区二区| 国产欧美在线视频| 在线看片一区| 久久精品一本| 午夜精品www| 国产精品国产精品| 99视频精品在线| 欧美顶级少妇做爰| 久久精品五月| 精品av久久707| 久久精品综合| 欧美一区二区三区在线免费观看| 国产精品女同互慰在线看| 一区二区三区免费在线观看| 亚洲国产精品久久人人爱蜜臀 | 久久狠狠久久综合桃花| 在线一区二区三区做爰视频网站 | 亚洲视频观看| 理论片一区二区在线| 亚洲欧美日本视频在线观看| 欧美性大战久久久久久久蜜臀| 亚洲人成欧美中文字幕| 欧美电影美腿模特1979在线看| 久久久久久97三级| 狠狠色丁香久久婷婷综合_中| 亚洲欧美日韩国产成人精品影院| 日韩一二三区视频| 国产精品vvv| 亚洲欧美文学| 欧美一级视频免费在线观看| 国产真实久久| 亚洲国产成人久久| 欧美激情视频网站| 欧美私人网站| 久久久精品五月天| 美女脱光内衣内裤视频久久网站| 亚洲黄色成人| 艳妇臀荡乳欲伦亚洲一区| 影音国产精品| 国产精品福利久久久| 欧美日韩国产成人在线观看| 亚洲图片欧洲图片日韩av| 亚洲一区二区伦理| 欧美多人爱爱视频网站| 久久久五月婷婷| 久久久免费av| 中日韩美女免费视频网址在线观看| 亚洲狼人综合| 国产一区二区三区成人欧美日韩在线观看 | 国产一区二区三区免费在线观看| 久久国产夜色精品鲁鲁99| 久久国产一区二区| 亚洲人在线视频| 亚洲一级在线观看| 亚洲高清一二三区| 亚洲综合精品一区二区| 在线精品国精品国产尤物884a| 亚洲经典视频在线观看| 国产酒店精品激情| 亚洲国产精品女人久久久| 国产精品日韩一区| 亚洲国产成人在线播放| 国产欧美日韩一级| 亚洲精品欧美一区二区三区| 国产最新精品精品你懂的| 亚洲剧情一区二区| 亚洲激情在线播放| 久久综合影视| 一区视频在线看| 一区二区三区视频在线观看| 久久精品国产清高在天天线| 亚洲最新合集| 麻豆国产精品777777在线| 欧美亚洲午夜视频在线观看| 欧美精品久久一区二区| 蜜桃久久av一区| 国产三级精品三级| 黄色在线一区| 午夜精品一区二区三区四区 | 亚洲国产美国国产综合一区二区 | 欧美国产第二页| 久久久99国产精品免费| 国产精品爱久久久久久久| 亚洲第一中文字幕| 精品成人一区二区| 久久成人免费日本黄色| 欧美资源在线观看| 国产精品一区毛片| 国产精品99久久久久久久久久久久| 在线国产日韩| 午夜欧美理论片| 欧美一区二区三区免费视| 欧美视频你懂的| 亚洲精品自在在线观看| 在线精品一区二区| 亚欧成人精品| 欧美搞黄网站| 亚洲精品极品| 欧美风情在线观看| 亚洲区第一页| 99re6热在线精品视频播放速度 | 久久精品国产久精国产爱 | 亚洲欧美卡通另类91av | 久久av最新网址| 国产伦精品一区二区三区视频孕妇| 中文精品视频| 欧美在线视频导航| 国产综合亚洲精品一区二| 久久一区精品| 在线亚洲一区观看| 欧美日韩在线第一页| 亚洲性图久久| 久久野战av| 亚洲啪啪91| 欧美精品国产精品| 亚洲一区精品电影| 麻豆成人在线观看| 亚洲一区二区视频在线观看| 国产综合一区二区| 欧美夫妇交换俱乐部在线观看| 日韩视频一区二区三区在线播放免费观看| 99视频日韩| 国产一区二区日韩精品| 欧美福利一区| 这里只有精品在线播放| 午夜精品视频一区| 亚洲第一福利视频| 欧美色视频在线| 久久精品国产91精品亚洲| 亚洲福利视频在线| 香蕉久久精品日日躁夜夜躁| 影音先锋日韩有码| 国产精品激情| 蜜桃av一区二区在线观看| 一区二区三区精品视频在线观看| 欧美专区亚洲专区| 欧美伦理91i| 欧美在线高清| 一区二区国产日产| 欧美激情第10页| 久久国产一区| 亚洲在线第一页| 亚洲精品久久视频| 国产亚洲电影| 亚洲人成亚洲人成在线观看| 欧美激情视频一区二区三区不卡| 午夜视频在线观看一区二区| 亚洲精品欧美日韩专区| 欧美不卡福利| 久久精彩视频| 午夜国产精品视频免费体验区| 亚洲国产精品第一区二区三区| 国产精品永久免费视频| 一区二区三区高清视频在线观看 | 久久精品国产一区二区电影 | 亚洲国产成人在线| 久热国产精品视频| 免费观看30秒视频久久|