国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Android中幾種圖片特效的處理的實現方法

Android中幾種圖片特效的處理的實現方法

2020-12-11 13:24Android教程網 Java教程

這篇文章主要介紹了 Android中幾種圖片特效的處理的實現方法的相關資料,這里有放大縮小圖片,獲得圓角圖片,獲得帶倒影圖片的幾種方法,需要的朋友可以參考下

 Android中幾種圖片特效的處理

這里有放大縮小圖片,獲得圓角圖片,獲得帶倒影圖片的幾種方法及實現代碼,

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  >
  <ImageView
    android:id="@+id/image01"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="10px"
    />
  <ImageView
    android:id="@+id/image02"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="10px"
  />
</LinearLayout>

修改主核心程序,ImageDemo.Java,代碼如下:

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

以上就是Android中幾種圖片特效的方法整理,如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 青青久视频 | 国产精品一区二区三区在线 | 国产精品久久久久久久久免费桃花 | 欧美一区二区三区在线观看 | 日韩久久精品一区二区 | 亚洲精品一区二区三区在线 | 国产一区二区三区四 | 欧美日本精品 | 亚洲精品一区二区三区 | 国产精品亚洲第一区在线暖暖韩国 | 日韩三级观看 | 久久精品亚洲 | 黄色片在线 | 国产乱码精品一品二品 | 精品国产91亚洲一区二区三区www | 激情综合网激情 | 色爱av| 国产h片在线观看 | 特级黄一级播放 | 欧洲成人午夜免费大片 | 日韩精品一区二区三区在线 | 一级黄色小视频 | 在线国产视频 | 国产精品区二区三区日本 | 国产精品久久久久久久 | 中字精品| 日韩中文字幕一区二区 | 欧美国产视频 | 亚洲精品欧美精品 | 国产黄色免费观看 | 国产麻豆精品 | 黄色片免费在线观看视频 | 中文字幕免费在线 | 一区二区在线视频 | 欧美在线日韩 | 黄色网在线看 | 婷婷综合一区 | 一区二区三区日韩 | 人人人人澡人人爽人人澡 | 中文字幕 在线观看 | 亚洲精品久久久久一区二区三区 |