Android: Преобразуване на изглед на изображение в растерно изображение, в сива скала, растерно изображение в изглед на изображение

Не получавам никакво предупреждение за eclipse, когато компилирам този код, но когато го стартирам на устройство или емулатор, тази програма беше принудена да се затвори.

public class MainActivity extends Activity {

    ImageView img;
    Button btn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //convert imageview to bitmap
        img =(ImageView) findViewById(R.id.imageView1);
        BitmapDrawable drawable = (BitmapDrawable) img.getDrawable();
        final Bitmap imgbitmap = drawable.getBitmap();


        btn.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                //convert bitmap to grayscale 
                Bitmap imgnew;
                imgnew = toGrayscale(imgbitmap);    

                //convert bitmap to imageview 
                ImageView imgbit;
                imgbit = (ImageView) findViewById(R.id.imageView2);
                imgbit.setImageBitmap(imgnew);
            }
        });

    }

    public Bitmap toGrayscale(Bitmap bmpOriginal){        
        int width, height;
        height = bmpOriginal.getHeight();
        width = bmpOriginal.getWidth();    

        Bitmap bmpGrayscale = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
        Canvas c = new Canvas(bmpGrayscale);
        Paint paint = new Paint();
        ColorMatrix cm = new ColorMatrix();
        cm.setSaturation(0);
        ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm);
        paint.setColorFilter(f);
        c.drawBitmap(bmpOriginal, 0, 0, paint);
        return bmpGrayscale;
    }

}

person gussurya_w    schedule 29.11.2013    source източник
comment
@payeli тук моя logcat pastebin.com/MwgeXZbf   -  person gussurya_w    schedule 29.11.2013
comment
можете ли да поставите котката си тук?   -  person Pradip    schedule 29.11.2013


Отговори (1)


Ако по-горе е вашият пълен код, тогава основният проблем е там, не сте дефинирали btn. Трябва да го дефинирате, преди да го използвате, в противен случай, когато искате да щракнете върху бутона, той няма да работи. и това може да затвори вашето приложение.

 btn=(Button) findViewById(R.id.button1);
person Pradip    schedule 29.11.2013