|
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
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은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
|