2014-10-05 49 views
0

我有两个类HomeActivityEditActivity,下面是我的HomeActivity类的代码,其中我从图库中获取图像并想解码它,解码后我想使用该类图像作为我在EditActivity按钮功能中的输入。如何在其他类中使用一个类别的数据输出

HomeActivity

public class HomeActivity extends Activity implements OnClickListener { 
    private Button btnEdit, btnGallery; 

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

     btnEdit = (Button) findViewById(R.id.btn_edit); 
     btnEdit.setOnClickListener(this); 

     btnGallery = (Button) findViewById(R.id.btn_gallery); 
     btnGallery.setOnClickListener(this); 
    } 

    @Override 
    public void onClick(View view) { 
     Intent intent; 
     switch (view.getId()) { 
     case R.id.btn_edit: 
      intent = new Intent(); 
      intent.setType("image/*"); 

      intent.setAction(Intent.ACTION_GET_CONTENT); 

      startActivityForResult(
        Intent.createChooser(intent, "Select Photo"), 
        MyConstants.TAKE_PHOTO); 

      break; 

     } 
    } 

    @Override 
    public void onBackPressed() { 
     super.onBackPressed(); 
    } 

    public void onActivityResult(final int requestCode, int resultCode, 
      final Intent data) { 
     System.out.println("Data come from: " + data); 
     super.onActivityResult(requestCode, resultCode, data); 
     if (requestCode == MyConstants.TAKE_PHOTO) { 
      if (resultCode == RESULT_OK) { 
       Uri selectedImageUri = data.getData(); 
       String selectedImagePath = getPath(selectedImageUri); 
       try 
       { 
       InputStream is = HomeActivity.this.getContentResolver().openInputStream(selectedImageUri); 
       final Bitmap bmInImg = BitmapFactory.decodeStream(is); 
       mPhotoIntArray = new int[bmInImg.getWidth() * bmInImg.getHeight()]; 
       nPhotoIntArray = new int[bmInImg.getWidth() * bmInImg.getHeight()]; 
       bmInImg.getPixels(mPhotoIntArray, 0, bmInImg.getWidth(), 0, 0, bmInImg.getWidth(), bmInImg.getHeight()); 
       mCannyOutArray = new int[bmInImg.getWidth() * bmInImg.getHeight()]; 
       final Bitmap bmOutImg = Bitmap.createBitmap(bmInImg.getWidth(), bmInImg.getHeight(), Config.ARGB_8888); 
       bmOutImg.setPixels(mCannyOutArray, 0, bmInImg.getWidth(), 0, 0, bmInImg.getWidth(), bmInImg.getHeight()); 

       } 
       catch (IOException e) { 
        e.printStackTrace(); 
       } 

       // System.out.println("Image Path : " + selectedImagePath); 
       Intent intent = new Intent(HomeActivity.this, 
         PhotoEditorActivity.class); 
       intent.setData(Uri.parse(selectedImagePath)); 
       startActivity(intent); 
      } 
     } 

     else if (requestCode == MyConstants.APP_EXIT) { 
      if (resultCode == Activity.RESULT_OK) { 
       finish(); 
       System.exit(0); 
      } 

     } 
    } 

    public String getPath(Uri uri) { 
     String[] projection = { MediaStore.Images.Media.DATA }; 
     Cursor cursor = managedQuery(uri, projection, null, null, null); 
     int column_index = cursor 
       .getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
     cursor.moveToFirst(); 
     return cursor.getString(column_index); 
    } 

} 

现在我想用bmInImgbmOutImg在HomeActivity的try/catch在EditActivity上的按钮进行点击喜欢

@Override 
    public void onClick(View view) 
    { 
     switch (view.getId()) { 
     case R.id.btn_camera: 
      negative(bmInImg.getHeight(),bmInImg.getWidth(), mPhotoIntArray, mCannyOutArray); 
      bmOutImg.setPixels(mCannyOutArray, 0, bmInImg.getWidth(), 0, 0, bmInImg.getWidth(), bmInImg.getHeight()); 
      break; 
    } 
    } 

我想是因为我用的是整体与上面的逻辑使用它代码try/catch在HomeActivity类的EditActivity上的btn_camera点击,但它没有显示output.Any其他逻辑也赞赏。

谢谢

回答

-1

你可以使用一个静态变量在HomeActivity类,你用它来存储数据,然后使用HomeActivity.variableName访问它在EditActivity

相关问题