** 我現在要做一個動畫效果,就是一個textview慢慢從模糊到清晰,我在網上搜的資料都是講圖片變模糊的,不知道有沒有大神做過類似的,能不能幫忙說一下思路,謝謝了!**
我現在的思路是拿到textview的bitmap使它模糊,不過好像沒什麼效果啊,哪位大神幫我看一下啊!
我的代碼
private void getBitmapFromView(){
thansun.getViewTreeObserver().addOnPreDrawListener(new OnPreDrawListener() {
@Override
public boolean onPreDraw() {
thansun.getViewTreeObserver().removeOnPreDrawListener(this);
thansun.buildDrawingCache();
bitmap=thansun.getDrawingCache();
blur(bitmap,thansun);
return true;
}
});
}
private void blur(Bitmap bitmap,TextView view){
Bitmap outBitmap=Bitmap.createBitmap(view.getWidth(), view.getHeight(), Config.ARGB_8888);
Canvas canvas=new Canvas(outBitmap);
canvas.translate(-view.getLeft(), -view.getTop());
canvas.drawBitmap(bitmap, 0, 0,null);
RenderScript rs=RenderScript.create(getApplicationContext());
Allocation allOut=Allocation.createFromBitmap(rs, outBitmap);
ScriptIntrinsicBlur blurScript=ScriptIntrinsicBlur.create(rs, allOut.getElement());
blurScript.setRadius(25.f);
blurScript.setInput(allOut);
blurScript.forEach(allOut);
allOut.copyTo(outBitmap);
bitmap.recycle();
//Bitmap b=fastblur(outBitmap,25);
view.setText("");
view.setBackground(new BitmapDrawable(getResources(),bitmap));
rs.destroy();
}
thansun是我的textview
你理解有誤,界面展示的文字和圖片其實都是可以用bitmap表示的,另外實現可以是這樣:
使用handler或者AsyncTask,每N秒更新一次textview,其實就是每次都是一次靜態固定半徑高斯模糊,只不過每次的模糊半徑不同