android模糊圖片處理
Ⅰ Android開發中ImageView里的Bitmap很模糊,怎麼解決
目標和容器不一致導致的。
1、設置imageview的scaleType為center,即不隨著控制項的大小而去硬性適配;
2、確保所得bitmap即圖片有預期的大小;
3、設置imageview的寬高為wrap,去適應bitmap的大小。
Ⅱ Android 圖片及文字模糊效果
implementation'com.github.bumptech.glide:glide:4.7.1'
implementation'jp.wasabeef:glide-transformations:4.0.1'
Glide.with(this).load(url)
.apply(RequestOptions.bitmapTransform(new BlurTransformation(5,2)))
.into(civ);
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){
//View從API Level 11才加入setLayerType方法 //設置View以軟體渲染模式繪圖
tvPhone.setLayerType(View.LAYER_TYPE_SOFTWARE,null);
}
SpannableString stringBuilder=new SpannableString("文字模糊");
stringBuilder.setSpan(new MaskFilterSpan(new BlurMaskFilter(10f,BlurMaskFilter.Blur.NORMAL)),
0,stringBuilder.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
tvPhone.setText(stringBuilder);
最後來張效果圖吧:
Ⅲ 如何實現Android 布局背景模糊化處理
在模仿 IOS 密碼輸入頁面的時候發現其背景有模糊處理,於是了解了一下並記錄下來,以便使用.在Android 中具體實現方法如下
查考 http://www.cnblogs.com/lipeil/p/3997992.html
Java代碼
private void applyBlur() {
// 獲取壁紙管理器
WallpaperManager wallpaperManager = WallpaperManager.getInstance(this.getContext());
// 獲取當前壁紙
Drawable wallpaperDrawable = wallpaperManager.getDrawable();
// 將Drawable,轉成Bitmap
Bitmap bmp = ((BitmapDrawable) wallpaperDrawable).getBitmap();
blur(bmp);
}
下面之所以要進行small 和big的處理,是因為僅僅靠ScriptIntrinsicBlur
來處理模式,不能到達更模式的效果,如果需要加深模式效果就需要先把背景圖片縮小,在處理完之後再放大.這個可以使用Matrix
來實現,而且這樣可以縮短模糊化得時間
Java代碼
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
private void blur(Bitmap bkg) {
long startMs = System.currentTimeMillis();
float radius = 20;
bkg = small(bkg);
Bitmap bitmap = bkg.(bkg.getConfig(), true);
final RenderScript rs = RenderScript.create(this.getContext());
final Allocation input = Allocation.createFromBitmap(rs, bkg, Allocation.MipmapControl.MIPMAP_NONE,
Allocation.USAGE_SCRIPT);
final Allocation output = Allocation.createTyped(rs, input.getType());
final ScriptIntrinsicBlur script = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
script.setRadius(radius);
script.setInput(input);
script.forEach(output);
output.To(bitmap);
bitmap = big(bitmap);
setBackground(new BitmapDrawable(getResources(), bitmap));
rs.destroy();
Log.d("zhangle","blur take away:" + (System.currentTimeMillis() - startMs )+ "ms");
}
private static Bitmap big(Bitmap bitmap) {
Matrix matrix = new Matrix();
matrix.postScale(4f,4f); //長和寬放大縮小的比例
Bitmap resizeBmp = Bitmap.createBitmap(bitmap,0,0,bitmap.getWidth(),bitmap.getHeight(),matrix,true);
return resizeBmp;
}
private static Bitmap small(Bitmap bitmap) {
Matrix matrix = new Matrix();
matrix.postScale(0.25f,0.25f); //長和寬放大縮小的比例
Bitmap resizeBmp = Bitmap.createBitmap(bitmap,0,0,bitmap.getWidth(),bitmap.getHeight(),matrix,true);
return resizeBmp;
}
Ⅳ 在android,怎麼實現activity模糊圖層效果呢
Android裡面:
最普遍的模糊技術是這樣做的:從TextView的後一層背景中截取一部分;進行模糊處理;把模糊處理後的部分設置為TextView的背景。
實現activity模糊圖層效果是RenderScript是Android在API 11之後加入的,用於高效的圖片處理,包括模糊、混合、矩陣卷積計算等,通過一種fastblur模糊圖片演算法來計算一張圖片像素,進而更改圖片的解析度和模糊程度。演算法代碼可以參考這篇csdn博客介紹幾種模糊演算法,地址如下:http://blog.csdn.net/xu_fu/article/details/23131241。
幾種演算法實現的效果都差不多,但是效果和時間上還是有很大區別,這取決於你的Android實際的運行環境,如果機器是Android API 2.0以下的,就不能使用RenderScript類,只能使用硬編碼方式,這就涉及到OPENGL的知識了,OPENGL就是對圖像進行各種處理的一門知識,這些知識都可以到網上找得到。我在csdn上次了一個Android圖片模糊處理的一個小demo,歡迎下載:鏈接如下:http://download.csdn.net/detail/omayyouhappy/8888251