我正在尝试添加雪流效果。但没有成功 我试着做不断流雪的效果。 可能吗?如果是,请给出建议。
我的代码如下。
public class MainActivity extends Activity {
private int COLOR_MAX = 0xff;
ImageView image;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
image = (ImageView)findViewById(R.id.imageView1);
Bitmap imagebitmap = BitmapFactory.decodeResource(getResources(),R.drawable.hydrangeas);
applySnowEffect(imagebitmap);
}
Bitmap applySnowEffect(Bitmap source)
{
// get image size
int width = source.getWidth();
int height = source.getHeight();
int[] pixels = new int[width * height];
// get pixel array from source
source.getPixels(pixels, 0, width, 0, 0, width, height);
// random object
Random random = new Random();
int R, G, B, index = 0, thresHold = 50;
// iteration through pixels
for(int y = 0; y < height; ++y) {
for(int x = 0; x < width; ++x) {
// get current index in 2D-matrix
index = y * width + x;
// get color
R = Color.red(pixels[index]);
G = Color.green(pixels[index]);
B = Color.blue(pixels[index]);
// generate threshold
thresHold = random.nextInt(COLOR_MAX );
if(R > thresHold && G > thresHold && B > thresHold) {
pixels[index] = Color.rgb(COLOR_MAX, COLOR_MAX, COLOR_MAX);
}
}
}
// output bitmap
Bitmap bmOut = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
bmOut.setPixels(pixels, 0, width, 0, 0, width, height);
Toast.makeText(getApplicationContext(),"processed",10).show();
return bmOut;
}
答案 0 :(得分:3)
前几天我真的读到了这个。您可以使用Android的粒子系统。可以在此处找到可以提供帮助的图书馆 - https://github.com/plattysoft/Leonids
答案 1 :(得分:0)
我刚刚找到解决方案。 来源位于:code link
主要思想是SnowFallView扩展View,并覆盖onDraw(Canvas canvas)事件,我们在那里绘制我们的雪花画笔。
代码刚刚经过测试并运行良好。