3

我正在尝试添加雪流效果。但没有成功我尝试做不断流雪的效果。可能吗?如果是,请提出建议。

我的代码如下。

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;


    }
4

2 回答 2

4

前几天我真的读到了这个。您可以使用适用于 Android 的粒子系统。可以在此处找到可以提供帮助的库 - https://github.com/plattysoft/Leonids

于 2015-06-07T17:26:46.610 回答
0

好吧,我刚刚找到了解决方案。来源在这里:代码链接

主要思想是 SnowFallView 扩展了 View,并覆盖了 onDraw(Canvas canvas) 事件,我们在其中绘制雪花可绘制对象。

该代码刚刚经过测试并且运行良好。

于 2015-06-07T16:34:00.477 回答