안드로이드 개발 질문/답변
(글 수 45,052)
package com.ireal.sc;
import java.util.ArrayList;
import com.ireal.SC;
import android.app.Activity;
import android.content.ComponentCallbacks;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.ViewFlipper;
import android.widget.CompoundButton;
import android.view.MotionEvent;
import android.view.animation.AnimationUtils;
import android.widget.ViewFlipper;
public class GalleryDetailActivity extends Activity implements View.OnTouchListener,CompoundButton.OnCheckedChangeListener
{
private Context mContext = null;
private final int imgWidth = 320;
private final int imgHeight = 372;
Button button_left;
Button button_right;
ArrayList<String> imgPaths;
String imgPath;
CheckBox checkBox;
ViewFlipper flipper;
// 터치 이벤트 발생 지점의 x좌표 저장
float xAtDown;
float xAtUp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gallery_detail);
mContext = this;
checkBox = (CheckBox)findViewById(R.id.chkAuto);
checkBox.setOnCheckedChangeListener(this);
flipper = (ViewFlipper)findViewById(R.id.viewFlipper);
flipper.setOnTouchListener((OnTouchListener) this);
/** 전송메시지 */
Intent i = getIntent();
Bundle extras = i.getExtras();
imgPath = extras.getString("filename");
imgPaths = extras.getStringArrayList("gallery");
/** 완성된 이미지 보여주기 */
Log.i("imgPath = ", imgPath);
BitmapFactory.Options bfo = new BitmapFactory.Options();
ImageView iv = (ImageView)findViewById(R.id.imageView);
Bitmap bm = BitmapFactory.decodeFile(SC.DIR_PATH+"/"+imgPath);
iv.setImageBitmap(bm);
// ViewFlipper에 동적으로 child view 추가
flipper.addView();
}
// View.OnTouchListener의 abstract method
// flipper 터지 이벤트 리스너
@Override
public boolean onTouch(View v, MotionEvent event)
{
// 터치 이벤트가 일어난 뷰가 ViewFlipper가 아니면 return
if(v != flipper) return false;
if(event.getAction() == MotionEvent.ACTION_DOWN) {
xAtDown = event.getX(); // 터치 시작지점 x좌표 저장
}
else if(event.getAction() == MotionEvent.ACTION_UP){
xAtUp = event.getX(); // 터치 끝난지점 x좌표 저장
if( xAtUp < xAtDown ) {
// 왼쪽 방향 에니메이션 지정
flipper.setInAnimation(AnimationUtils.loadAnimation(this,
R.anim.push_left_in));
flipper.setOutAnimation(AnimationUtils.loadAnimation(this,
R.anim.push_left_out));
// 다음 view 보여줌
flipper.showNext();
}
else if (xAtUp > xAtDown){
// 오른쪽 방향 에니메이션 지정
flipper.setInAnimation(AnimationUtils.loadAnimation(this,
R.anim.push_right_in));
flipper.setOutAnimation(AnimationUtils.loadAnimation(this,
R.anim.push_right_out));
// 전 view 보여줌
flipper.showPrevious();
}
}
return true;
}
// CompoundButton.OnCheckedChangeListener의 abstract method
// 책크박스 책크 이벤트 리스너
@Override
public void onCheckedChanged(CompoundButton view, boolean isChecked)
{
Log.w("checked", Boolean.toString(isChecked));
if(isChecked == true) {
// 왼쪽 에니메이션 설정
flipper.setInAnimation(AnimationUtils.loadAnimation(this,
R.anim.push_left_in));
flipper.setOutAnimation(AnimationUtils.loadAnimation(this,
R.anim.push_left_out));
// 자동 Flipping 시작 (간격 3초)
flipper.setFlipInterval(3000);
flipper.startFlipping();
}
else
{
// 자동 Flipping 해지
flipper.stopFlipping();
}
}
}
서버에 이미지를 가져와서여 viewFlipper형태로 만들려고하는데염
근데받아온이미지를 Arraylist형태로 받아둡니다. 근데 view flipper형태로 갈려니 정말 어려운데염..밑은 소스 전문 입니다.
flipper.addView(); 이부분을 어떻게 해야할건데 방법을 잘모르겠습니다. 아 .....
고수님들 좀도와주십쇼..




일단 addview() 에는 인자로 View 를 넘겨주시면 됩니다.