当我点analysis时总会出现unfortunately yingyong has stoped 问题出现在红色背景区域

qwem 发布于 2013/10/28 10:42
阅读 150
收藏 0
package com.example.yingyong;


import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.os.Environment;
import android.provider.MediaStore;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;


import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;






public class MainActivity extends Activity {


 


    ImageView viewImage;


    Button b;
    Button d;
    TextView s;
 Bitmap thumb;


    @Override


    protected void onCreate(Bundle savedInstanceState) {


        super.onCreate(savedInstanceState);


        setContentView(R.layout.activity_main);


        b=(Button)findViewById(R.id.btnSelectPhoto);
        d=(Button)findViewById(R.id.btanalysis);


        viewImage=(ImageView)findViewById(R.id.viewImage);


        b.setOnClickListener(new View.OnClickListener() {


            @Override


            public void onClick(View v) {


                selectImage();


            }


        });
        d.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Analysis();
            
        }
        
        });


    }


 


    @Override


    public boolean onCreateOptionsMenu(Menu menu) {


        // Inflate the menu; this adds options to the action bar if it is present.


        getMenuInflater().inflate(R.menu.main, menu);


        return true;


    }


 public  void  Analysis(){
    viewImage.setDrawingCacheEnabled(true);
//Bitmap thumb=BitmapFactory.decodeResource(getResources(), R.id.viewImage );




int width = thumb.getWidth();  
        int height = thumb.getHeight(); 
        int a=0;
        for(int i=0; i<width; i++) { 
        for(int j=0; j<height; j++) {
        int rgb = thumb.getPixel(i, j) ;
        int r = (rgb & 0xff0000) >> 16; 
        int g = (rgb & 0xff00) >> 8; 
        int b = (rgb & 0xff); 
        if ((r>175&&r<225)&&(g>120&&g<160)&&(b>130&&b<180)  )
            {
            a=a+1;
            }
            else
            {
                a=a-1;
            }
         
         
         
        }
        }
         
        s.setText(a);
   }
  
 
 


       private void selectImage() {


 


        final CharSequence[] options = { "Take Photo", "Choose from Gallery","Cancel" };


 


        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);


        builder.setTitle("Add Photo!");


        builder.setItems(options, new DialogInterface.OnClickListener() {


            @Override


            public void onClick(DialogInterface dialog, int item) {


                if (options[item].equals("Take Photo"))


                {


                    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);


                    File f = new File(android.os.Environment.getExternalStorageDirectory(), "temp.jpg");


                    intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f));


                    startActivityForResult(intent, 1);


                }


                else if (options[item].equals("Choose from Gallery"))


                {


                    Intent intent = new   Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);


                    startActivityForResult(intent, 2);


 


                } 


                else if (options[item].equals("Cancel")) {


                    dialog.dismiss();


                }


            }


        });


        builder.show();


    }


 


    @Override


    protected void onActivityResult(int requestCode, int resultCode, Intent data) {


        super.onActivityResult(requestCode, resultCode, data);


        if (resultCode == RESULT_OK) {


            if (requestCode == 1) {


                File f = new File(Environment.getExternalStorageDirectory().toString());


                for (File temp : f.listFiles()) {


                    if (temp.getName().equals("temp.jpg")) {


                        f = temp;


                        break;


                    }


                }


                try {


                    Bitmap bitmap;


                    BitmapFactory.Options bitmapOptions = new BitmapFactory.Options();


 


                    bitmap = BitmapFactory.decodeFile(f.getAbsolutePath(),


                            bitmapOptions); 


                   


                    viewImage.setImageBitmap(bitmap);


 


                    String path = android.os.Environment


                            .getExternalStorageDirectory()


                            + File.separator


                            + "Phoenix" + File.separator + "default";


                    f.delete();


                    OutputStream outFile = null;


                    File file = new File(path, String.valueOf(System.currentTimeMillis()) + ".jpg");


                    try {


                        outFile = new FileOutputStream(file);


                        bitmap.compress(Bitmap.CompressFormat.JPEG, 85, outFile);


                        outFile.flush();


                        outFile.close();


                    } catch (FileNotFoundException e) {


                        e.printStackTrace();


                    } catch (IOException e) {


                        e.printStackTrace();


                    } catch (Exception e) {


                        e.printStackTrace();


                    }


                } catch (Exception e) {


                    e.printStackTrace();


                }


            } else if (requestCode == 2) {


 


                Uri selectedImage = data.getData();


                String[] filePath = { MediaStore.Images.Media.DATA };


                Cursor c = getContentResolver().query(selectedImage,filePath, null, null, null);


                c.moveToFirst();


                int columnIndex = c.getColumnIndex(filePath[0]);


                String picturePath = c.getString(columnIndex);


                c.close();


                Bitmap thumbnail = (BitmapFactory.decodeFile(picturePath));


                Log.w("path of image from gallery......******************.........", picturePath+"");
thumb=thumbnail;
                viewImage.setImageBitmap(thumbnail);


            }


        }


    }    


}


加载中
返回顶部
顶部