안녕하세요

 

안드로이드 초보인데요

 

카메라로 사진을 찍어서 이 사진의 파일이름이 밀리세컨변수로 저장되고

 

사진을 찍고 난후 다른 버튼을 누르면 imageview가 있는 다른 화면으로 넘어가서 멀티터치로 확대 축소해서 그 사진을 볼수 있게해주는데

 

각각의 기능은 다 구현됫는데 이 파일이름을 보내서 다음 페이지의 imageview를 방금 찍은 사진으로 갱신해주는게 안되네요 ㅠㅠ

 

사진 찍어주는 클래스 입니다. 인텐트로 파일 이름을 다음 액티비티로 넘기게 했습니다.

 

 

public class CameraActivity extends Activity {
 
 private static final String TAG = "Camerasystem";
 Camera camera;
 Preview preview;
 Button buttonClick;
 Button buttonImage;
 long filename;
 

 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.camera);
 
  preview = new Preview(this);
  ((FrameLayout) findViewById(R.id.preview)).addView(preview);

  buttonClick = (Button) findViewById(R.id.buttonClick);
  buttonImage = (Button) findViewById(R.id.imagebutton);
  
  buttonClick.setOnClickListener( new OnClickListener() {
   public void onClick(View v) {
    preview.camera.takePicture(shutterCallback, rawCallback, jpegCallback);
   }
  });
  
  buttonImage.setOnClickListener( new OnClickListener() {
   public void onClick(View v) {
    Bundle extras = new Bundle();
    extras.putLong("passfilename", filename);
    Intent intent = new Intent(CameraActivity.this, ImageviewActivity.class);
    intent.putExtras(extras);
    startActivity(intent);
   }
  });

  
  
  
  
  
  Log.d(TAG, "onCreate'd");
 }


 ShutterCallback shutterCallback = new ShutterCallback() {
  public void onShutter() {
   Log.d(TAG, "onShutter'd");
  }
 };

 /** Handles data for raw picture */
 PictureCallback rawCallback = new PictureCallback() {
  public void onPictureTaken(byte[] data, Camera camera) {
   Log.d(TAG, "onPictureTaken - raw");
  }
 };

 /** Handles data for jpeg picture */
 PictureCallback jpegCallback = new PictureCallback() {
  public void onPictureTaken(byte[] data, Camera camera) {
   FileOutputStream outStream = null;
   try {
    // write to local sandbox file system
//    outStream = CameraDemo.this.openFileOutput(String.format("%d.jpg", System.currentTimeMillis()), 0); 
    // Or write to sdcard
    long filename = System.currentTimeMillis();
    outStream = new FileOutputStream(String.format("res/layout/drawable-mdpi/"+ filename +".jpg"));
    
   // outStream = new FileOutputStream(String.format("/sdcard/"+ filename +".jpg")); 
    outStream.write(data);
    outStream.close();
    Log.d(TAG, "onPictureTaken - wrote bytes: " + data.length);
   } catch (FileNotFoundException e) {
    e.printStackTrace();
   } catch (IOException e) {
    e.printStackTrace();
   } finally {
   }
   Log.d(TAG, "onPictureTaken - jpeg");
  }
 };

}

 

위에 res/layout/drawable-mdbi로 저장된 파일을 새로운 액티비티 화면의 imageview에 갱신이 안되네요 ㅠ

이미지뷰 코드입니다

public class ImageviewActivity extends Activity implements OnTouchListener {
 
 private static final String TAG = "Touch";
 private static final float MIN_ZOOM = 1.0f;
 private static final float MAX_ZOOM = 5.0f; 
 
 public Intent mIntent = new Intent();
 public long filenamelong;
 
 Matrix matrix = new Matrix(); Matrix savedMatrix = new Matrix(); 
 
 static final int NONE = 0;
 static final int DRAG = 1;
 static final int ZOOM = 2; int mode = NONE; 
 
 PointF start = new PointF();
 PointF mid = new PointF();
 
 float oldDist = 1f; 
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);  
  setContentView(R.layout.imageview);
  
  mIntent = getIntent();
  
  mIntent.getLongExtra("passfilename", filenamelong);
  
  String filenamestring = Long.toString(filenamelong);
  
 
  
  ImageView view = (ImageView) findViewById(R.id.imageView1);
  
  view.setImageResource(getResources().getIdentifier(filenamestring, "drawable", "com.mck.multiAppproject"));

 

   
  view.setScaleType(ImageView.ScaleType.FIT_CENTER);
  view.setOnTouchListener(this);   

 

일단 넘어온 변수가 long 이라서 이걸 string으로 변환해주고 setimageresource를 썻는데도 절대 갱신이 안되네요 ㅠㅠ

 

고수님들 도와주세요~~~