PGR21.com
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
Date 2012/05/18 15:59:42
Name 계란후라이
Subject [안드로이드]Canvas에 그린 그림을 ImageView에 넣고싶습니다!!
안녕하세요! 안드로이드 초보 입문자입니다.
어제도 AhnGoon님의 도움을 받아 특정 사진을 Canvas에 blur효과를 입혀 그렸습니다.
그런데도 마지막 해결점을 찾지못해 질문 올립니다!!

먼저 앱 설명을 드리겠습니다.
ImageList로 갤러리에서 사진을 불러와서 보여줍니다.
특정 사진 터치하면 ImagePopup으로 특정 사진을 팝업시켜주는데요!
여기서 밑의 버튼중 blur 효과 버튼을 누르면 팝업된 사진에 효과만 입혀주고싶습니다!

효과는 CCFilterActivity에서 사진 경로를 받아와서 캔버스에 효과 입힌 사진을 그려주는데요!
View클래스에서 getDrawingCache()를 이용해서 Canvas를 Bitmap으로 바꿔서 띄우려고해도 잘안됩니다;;
이 캔버스에 그려진 사진을 ImagePopup의 ImageView에 띄워주고싶은데 어떻게해야할까요!!??
꼭 답변 부탁드립니다.

--------------------
ImagePopup.java 소스입니다.

package com.gon;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;

public class ImagePopup extends Activity implements OnClickListener{
private Context mContext = null;
private final int imgWidth = 320;
private final int imgHeight = 372;
private Intent intent;
private String imgPath;
@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.image_popup);
  
  mContext = this;

  /** 전송메시지 */
  Intent i = getIntent();

  Bundle extras = i.getExtras();
  imgPath = extras.getString("filename");
  
// Toast.makeText(mContext, imgPath, Toast.LENGTH_LONG).show();
// i.putExtra("filename", imgPath);
  
  /** 완성된 이미지 보여주기  */
  BitmapFactory.Options bfo = new BitmapFactory.Options();
  bfo.inSampleSize = 2;
  ImageView iv = (ImageView)findViewById(R.id.imageView);
  Bitmap bm = BitmapFactory.decodeFile(imgPath, bfo);
  Bitmap resized = Bitmap.createScaledBitmap(bm, imgWidth, imgHeight, true);
  iv.setImageBitmap(resized);

  /** 리스트로 가기 버튼 */
  Button btn = (Button)findViewById(R.id.btn_back);  
  btn.setOnClickListener(this);
  Button btn2 = (Button)findViewById(R.id.btn_save);
  btn2.setOnClickListener(this);
  Button btn3 = (Button)findViewById(R.id.btn_blur);
  btn3.setOnClickListener(this);
}
private void addView(ImageView imageView) {
  // TODO Auto-generated method stub
  
}
/* (non-Javadoc)
  * @see android.view.View.OnClickListener#onClick(android.view.View)
  */

public void onClick(View v) {

  switch(v.getId()){
  case R.id.btn_back:  
   intent = new Intent(mContext, ImageList.class);
   startActivity(intent);
   break;
  case R.id.btn_save:
   intent = new Intent(mContext, ImageList.class);
   startActivity(intent);
   break;
  case R.id.btn_blur:
   intent = new Intent(this, CCFilterActivity.class);
   intent.putExtra("filename", imgPath);
   startActivity(intent);
   break;
  }
}
}

-----------------------------
CCFilterActivity.java 소스입니다.

package com.gon;

import java.io.*;
import android.app.*;
import android.content.*;
import android.graphics.*;
import android.graphics.Bitmap.Config;
import android.os.*;
import android.view.*;
import android.widget.ImageView;
import android.widget.Toast;

public class CCFilterActivity extends Activity {

private Intent intent;
private String filename;
private Context mContext=this;
private String imagepath;
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  
  setContentView(R.layout.image_popup);
  
  //setContentView(new MyView(this));
  
  //setContentView(R.layout.main);
  
  intent = getIntent();
  imagepath= intent.getExtras().get("filename").toString();
//  Toast.makeText(mContext, imagepath, Toast.LENGTH_LONG).show();
  /*intent = getIntent();
  String filename = intent.getExtras().get("filename").toString();*/
}

protected class MyView extends View
{
  
  public MyView(Context context)
  {
   super(context);  
  }

  public void onDraw(Canvas canvas)
  {
   canvas.drawColor(Color.LTGRAY);
   Paint Pnt = new Paint();
   Pnt.setAntiAlias(true);
  
   Bitmap bit =  BitmapFactory.decodeFile(imagepath);
   Bitmap resized = Bitmap.createScaledBitmap(bit, 310, 360, true); //Size 조정

   BlurMaskFilter blur = new BlurMaskFilter(10, BlurMaskFilter.Blur.NORMAL);
   Pnt.setMaskFilter(blur);
   canvas.drawBitmap(resized, 10, 10, Pnt);
    
   MyView a = new MyView(mContext);
   bit = a.getDrawingCache();
      
   ImageView iv = (ImageView)findViewById(R.id.imageView);  
   iv.setImageBitmap(bit);
  }
}
}

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
Bayer Aspirin
12/05/18 16:13
수정 아이콘
logcat을..
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
135076 요추추간판 탈출증 진단명에 관한 질문입니다 [3] 비온날1704 12/05/18 1704
135075 피시방 10시이후 청소년 출입금지 언제생겼나요? [6] 박하선2847 12/05/18 2847
135074 디아블로3 대기열 대기중 질문... [4] 키토1864 12/05/18 1864
135073 디아3 질문입니다. [1] Suiteman1552 12/05/18 1552
135072 디3 부두게이 스킬 버그 있던데 맞는지 질문... 보봉보1617 12/05/18 1617
135071 하나의 배틀넷 계정에 등록된 와우,스타2,디아3 동시접속 가능한가요? [5] 몽유도원5456 12/05/18 5456
135070 lol 친구에게 제 아이디를 빌려줬더니.. [14] 박주영2102 12/05/18 2102
135068 [lol] 럭스, 어떻게 보시나요? [17] 별비2178 12/05/18 2178
135067 어제? 한화 vs 두산 에서 윤석민선수의 3루태그시에 질문입니다. [6] kingkimhs2203 12/05/18 2203
135066 안드로이드 게임 추천 [9] The HUSE2277 12/05/18 2277
135065 [안드로이드]Canvas에 그린 그림을 ImageView에 넣고싶습니다!! [4] 계란후라이5163 12/05/18 5163
135064 시계 째깍소리 없앨 수 있나요? [1] beloved1872 12/05/18 1872
135063 제가 이상한걸까요? 밑에글보고 궁금한게생겨서요.. [12] 싸구려신사2118 12/05/18 2118
135062 디아블로3 액트2 벨리알 잡는법좀.. [6] 삶이춤추도록1873 12/05/18 1873
135061 토목공학과 진로 관련해서 [5] 망디망디3457 12/05/18 3457
135060 [lol]100여가지 챔피언의 기술들을 언제 다 아셨나요? [17] 포아2162 12/05/18 2162
135059 한화신인 하주석 아마시절 어땠나요? [6] 레알로얄2146 12/05/18 2146
135058 디아3 질문 입니다. 법사템 관련 [1] Cazellnu1973 12/05/18 1973
135057 [디아3]저도 초보적인 질문하나 드립니다. 무기관련.. [3] 파쿠만사1563 12/05/18 1563
135056 [LOL] 심해면 얼마나 못하는 건가요? 그 외 몇가지 질문들. [15] 전인민의무장2064 12/05/18 2064
135055 [디아3]마법사 파열주문과 발화 [2] 물키벨2314 12/05/18 2314
135054 [스포주의] 디아 확팩 떡밥 [7] 스치파이2101 12/05/18 2101
135053 디아3 싱글이랑 공개방이랑 가장 큰 차이는 뭔가요?? [3] 블루드래곤2418 12/05/18 2418
목록 이전 다음
댓글

+ : 최근 6시간내에 달린 댓글
+ : 최근 12시간내에 달린 댓글
맨 위로