當前位置:首頁 » 安卓系統 » android模糊效果

android模糊效果

發布時間: 2022-05-01 17:47:43

A. Android ListView在滾動的時候下上邊界會出現模糊效果,如何去除

如果你想讓邊界明顯一點的話。可以設置背景圖片啊!用shape自定義圖片。那樣可以解決背景邊框問題!
http://blog.csdn.net/ch_984326013/article/details/6613138

B. Android 如何給登陸背景加一層模糊,如圖所示

這里的模糊都是給設置的背景半透明,就是android:background設置為半透明的在color.xml中定義半透明的方式是這樣,#AARRGGBB,#後邊的AA就是透明度,從00不透明到FF純透明,後面的RRGGBB是從000000到FFFFFF的從黑色到白色,根據你的界面應該是半透明白色,估計應該是個#99FFFFFF差不多的,後面的FFFFFF表示白色,99表示透明度,注意 是16進制的,這樣給你的要透明的控制項設置背景就可以實現半透明了

C. 怎麼實現Android 布局背景模糊化處理

在模仿 IOS 密碼輸入頁面的時候發現其背景有模糊處理,於是了解了一下並記錄下來,以便使用.在Android 中具體實現方法如下
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 來實現,而且這樣可以縮短模糊化得時間
@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;
}

D. android 背景虛化原理是什麼

1. RenderScript

談到高斯模糊,第一個想到的就是RenderScript。RenderScript是由Android3.0引入,用來在Android上編寫高性能代碼的一種語言(使用C99標准)。 引用官方文檔的描述:
RenderScript runtime will parallelize work across all processors available on a device, such as multi-core CPUs, GPUs, or DSPs, allowing you to focus on expressing algorithms rather than scheling work or load balancing.
為了在Android中使用RenderScript,我們需要(直接貼官方文檔,比直譯更通俗易懂):
High-performance compute kernels are written in a C99-derived language.
A java API is used for managing the lifetime of RenderScript resources and controlling kernel execution.
學習文檔:http://developer.android.com/guide/topics/renderscript/compute.html
上面兩點總結成一句話為:我們需要一組compute kernels(.rs文件中編寫),及一組用於控制renderScript相關的java api(.rs文件自動生成為java類)。 由於compute kernels的編寫需要一定的學習成本,從JELLY_BEAN_MR1開始,Androied內置了一些compute kernels用於常用的操作,其中就包括了Gaussian blur。
下面,通過實操來講解一下RenderScript來實現高斯模糊,最終實現效果(講文字背景進行模糊處理):

布局:

[html] view plain
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<ImageView
android:id="@+id/picture"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/splash"
android:scaleType="centerCrop" />

<TextView
android:id="@+id/text"
android:gravity="center_horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Gaussian Blur"
android:textColor="@android:color/black"
android:layout_gravity="center_vertical"
android:textStyle="bold"
android:textSize="48sp" />

<LinearLayout
android:id="@+id/controls"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#7f000000"
android:orientation="vertical"
android:layout_gravity="bottom" />
</FrameLayout>
核心代碼:

[java] view plain
private void applyBlur() {
image.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {

@Override
public boolean onPreDraw() {
image.getViewTreeObserver().removeOnPreDrawListener(this);
image.buildDrawingCache();
Bitmap bmp = image.getDrawingCache();
blur(bmp, text, true);
return true;
}
});
}

@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
private void blur(Bitmap bkg, View view) {
long startMs = System.currentTimeMillis();
float radius = 20;

Bitmap overlay = Bitmap.createBitmap((int)(view.getMeasuredWidth()), (int)(view.getMeasuredHeight()), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(overlay);
canvas.translate(-view.getLeft(), -view.getTop());
canvas.drawBitmap(bkg, 0, 0, null);

RenderScript rs = RenderScript.create(SecondActivity.this);

Allocation overlayAlloc = Allocation.createFromBitmap(rs, overlay);
ScriptIntrinsicBlur blur = ScriptIntrinsicBlur.create(rs, overlayAlloc.getElement());
blur.setInput(overlayAlloc);
blur.setRadius(radius);
blur.forEach(overlayAlloc);
overlayAlloc.To(overlay);
view.setBackground(new BitmapDrawable(getResources(), overlay));
rs.destroy();

statusText.setText("cost " + (System.currentTimeMillis() - startMs) + "ms");
}
當ImageView開始載入背景圖時,取出它的drawableCache,進行blur處理,Gaussian blur的主要邏輯在blur函數中。對於在Java中使用RenderScript,文檔中也有詳細描述,對應到我們的代碼,步驟為:
初始化一個RenderScript Context.
至少創建一個Allocation對象用於存儲需要處理的數據.
創建compute kernel的實例,本例中是內置的ScriptIntrinsicBlur對象.
設置ScriptIntrinsicBlur實例的相關屬性,包括Allocation, radius等.
開始blur操作,對應(forEach).
將blur後的結果拷貝回bitmap中。

E. 安卓手機拍照很清晰,發朋友圈很模糊怎麼回事

安卓手機拍的照片清晰,發到朋友圈後,用iPhone手機看卻很模糊,這是由三個原因導致的。首先,微信朋友圈不像朋友之間點對點聊天那樣可以發原圖,上傳到朋友圈的照片都是經過壓縮的,因為圖片不經過壓縮上傳到伺服器上會很占硬碟空間,對騰訊來說成本過高。以下圖的貓咪為例,原圖是我用單反拍攝後處理的,文件大小在1MB左右,解析度1920×1280。用安卓手機上傳到朋友圈後再下載回來,發現被壓縮到500KB,解析度也變成了1620×1080。通過下圖左右兩邊的對比就會發現,原圖畫質中貓咪的毛發清晰,瞳孔也十分明亮,而朋友圈畫質的毛發細節基本上糊成一團了,瞳孔也失去了光彩。也就是說我們平時用手機拍攝的照片被上傳到朋友圈之後,即使原圖的解析度再高,最終畫質肯定是有損失的。所以用其它手機看會發現比原圖模糊。


還有一種比較少見的可能性就是,一些網友的蘋果手機換過屏幕,而且換上的是非原裝的國產屏幕。這種國產屏平時用用可能看不出什麼問題,但是在欣賞圖片、視頻的時候,就容易模糊發虛,顯示效果肯定是不如原裝屏的。總而言之,同樣的朋友圈照片在安卓手機上看和在蘋果手機上看,畫質不一樣是正常現象。由於朋友圈會壓縮照片,所以大家在和朋友分享圖片的時候盡量用點對點傳原圖的方式,不要用朋友圈。

F. android如何實現透明模糊效果

背景設置為你要模糊的顏色,透明度設置的高點就行了

G. 安卓系統設置動態模糊是什麼意思

動態模糊或運動模糊是靜態場景或一系列的圖片像電影或是動畫中快速移動的物體造成明顯的模糊拖動痕跡。在大多數電子游戲中,都提供動態模糊特效。如果開啟動態模糊,連續畫面看起來將會相對平滑和順暢(但幀數其實沒有改變),在動作場景和快速運動的場景中還能獲得更加真實的體驗——例如飆車。

H. 如何讓Android的View在動畫時具有運動模糊的鏡頭效果

float startX,startY;//動畫開始前的位置
float x,y;//圖片當前坐標
float targetX,targetY;//目標位置
float ration;//動畫所需要的時間

float deltaX=targetX-startX;
float deltaY=targetY-startY;

onDraw(Canvas canvas,float deltaTime){
x=startX+deltaX*deltaTime/ration;
y=startY+deltaY*deltaTime/ration;
canvas.draw(bmp,x,y,null);
}

I. 在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

J. 如何實現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;
}

熱點內容
編譯器怎麼處理c變長數組 發布:2025-05-14 23:31:46 瀏覽:661
存摺每天可以輸錯多少次密碼 發布:2025-05-14 23:22:06 瀏覽:907
安卓手機怎麼找微信隱藏對話 發布:2025-05-14 23:07:47 瀏覽:336
怎麼查看泰拉伺服器ip 發布:2025-05-14 23:03:29 瀏覽:72
c語言學生成績查詢系統 發布:2025-05-14 22:58:30 瀏覽:4
怎麼進別人的伺服器 發布:2025-05-14 22:45:55 瀏覽:772
用編程寫音樂 發布:2025-05-14 22:45:08 瀏覽:782
如何識別電腦的網路配置 發布:2025-05-14 22:38:46 瀏覽:847
pipforpython3 發布:2025-05-14 22:38:34 瀏覽:350
如何把迷你世界的伺服器搞崩 發布:2025-05-14 22:37:15 瀏覽:94