SMARTISAN OS具有这种作用的天气应用程序:从摄氏改变格式为华氏时,温度数字会滚动这样的: Motion blur effect sample如何实现这样的运动模糊效果?
我认为这不是数字滚动时简单的模糊效果,因为你可以从图像中看到这些数字只在垂直方向上模糊。数字以低速滚动,然后更快。模糊半径随着滚动而变长。对我而言,这种影响并不容易实现。
SMARTISAN OS具有这种作用的天气应用程序:从摄氏改变格式为华氏时,温度数字会滚动这样的: Motion blur effect sample如何实现这样的运动模糊效果?
我认为这不是数字滚动时简单的模糊效果,因为你可以从图像中看到这些数字只在垂直方向上模糊。数字以低速滚动,然后更快。模糊半径随着滚动而变长。对我而言,这种影响并不容易实现。
只需创建一个总是在画布上绘制的自定义视图。你必须自己处理上下运动,在这种情况下,你将无法使用简单的内置UI元素。一旦您想要获得滚动效果,只需多次绘制移动文本,但每次都要略微移动它,并根据其速度改变其不透明度。
在这种情况下使用OpenGL可能是一种矫枉过正,因为这种情况只是关于文本。运动模糊将会非常困难,并且执行性能会很大,并且将文本绘制成十几次只会对性能产生较小的影响。
希望我能帮上忙。
@andras
/**
* use for 2D-Radial-Blur
*
* @param src
* @param dx It effetcs the speed. you can use 1/-1 for a test
* @param dy It effetcs the speed. you can use 1/-1 for a test
* @param times effects motion length
* @return
*/
public static Bitmap doRadialBlur(Bitmap src, int dx, int dy, int times) {
Bitmap dst = Bitmap.createBitmap(src.getWidth(), src.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(dst);
Matrix matrix = new Matrix();
Paint paint = new Paint();
canvas.drawBitmap(src, matrix, paint);
paint.setAlpha(51); // 51/255 =20%
for (int i = 0; i < times; i++) {
matrix.setTranslate(i * dx, i * dy);
canvas.drawBitmap(src, matrix, paint);
}
return dst;
}
的相同的解决方案实际上,事实并非如此。现在你的问题是什么? (请不要说它是“我该如何实现它”,因为这对Stack Overflow来说太广泛了。) –