정말 답답해서 질문드립니다
위 보이시는게 제 어플 설명입니다
아래부분은 탭호스트를 이용해서 구현하였고
내용부분은 뷰페이져를 이용하여 구현하였습니다
페이져어댑터를 커스터마이징하여 새로운 xml 파일을 inflate 하여 image를 보여주게끔 구현하였습니다
굉장히 말이 어렵긴한데 ㅠㅠ
여기서 어느부분에 확대축소를 추가하여야 하는지 정확히 모르겠습니다.,,
갈피를 못잡겠네요 너무 복잡한 어플 구조라 그런지 ㅠㅠ
아니면 제가 너무 초보라서 그런건지 모르겠네요 ㅠㅠ
뷰페이져 어댑터 부분은 첨부하겠습니다.
private class ImagePagerAdapter extends PagerAdapter {
@Override
public int getCount() {
return Integer.parseInt(Worklist.selItem.image);
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((View) object);
}
@Override
public void setPrimaryItem(ViewGroup container, int position,
Object object) {
// TODO Auto-generated method stub
super.setPrimaryItem(container, position, object);
Log.i("check","now pos"+(position));
if(bit.length-position>4){
if(bit[position+4] != null)
{
bit[position+4].recycle();
Log.i("check","+3" + (position+3) + "지워짐");
}}
if(position>=4){
if(bit[position-4] != null)
{
bit[position-4].recycle();
Log.i("check","-3"+ (position-3) + "지워짐");
}}
}
@Override
public Object instantiateItem(View container, final int position) {
Context context = Viewer.this;
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflater.inflate(R.layout.imageadapter, null);
//View v = inflater.inflate(m_pagerResource[position], null);
//imageView = new ImageView(context);
imageView = (ImageView)v.findViewById(R.id.imageV);
final TextView tv = (TextView)v.findViewById(R.id.tv);
final Button info = (Button)v.findViewById(R.id.info);
final TextView id = (TextView)v.findViewById(R.id.id);
final TextView iman = (TextView)v.findViewById(R.id.iman);
//final Button big = (Button)v.findViewById(R.id.big);
//final Button small = (Button)v.findViewById(R.id.small);
//imageView.setImageMatrix(matrix);
imageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
tv.setText(Worklist.selItem.num);
id.setText(Worklist.selItem.ID);
iman.setText(position+1 +"/"+Worklist.selItem.image);
if(flag ==0){
tv.setVisibility(View.VISIBLE);
info.setVisibility(View.VISIBLE);
id.setVisibility(View.VISIBLE);
iman.setVisibility(View.VISIBLE);
flag =1;
}
else {
tv.setVisibility(View.GONE);
info.setVisibility(View.GONE);
id.setVisibility(View.GONE);
iman.setVisibility(View.GONE);
flag = 0;
}
info.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(Viewer.this, Property.class);
LocalActivityManager activityManager =getLocalActivityManager();
Window window = activityManager.startActivity("test",intent);
setContentView(window.getDecorView());
}
});
}
});
if(getCount() >position+2){
//new ImageTaskAsyn().execute(position+2);
new ImageTaskAsyn().execute(position+2);
Log.i("check","(async+2)="+(position+2));
}
if(0<=position-2){
new ImageTaskAsyn().execute(position-2);
Log.i("check","(async-2)="+(position-2));
}
int padding = context.getResources().getDimensionPixelSize(R.dimen.padding_medium);
imageView.setPadding(padding, padding, padding, padding);
imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
imageView.setImageBitmap(bit[position]);
v.setPadding(padding, padding, position, padding);
((ViewPager) container).addView(v, 0);
return v;
}
/*
public boolean onTouchEvent(MotionEvent event){
if(event.getPointerCount()==2){
int action = event.getAction();
int pureaction = action & MotionEvent.ACTION_MASK;
if(pureaction== MotionEvent.ACTION_POINTER_2_DOWN){
mBaseDist = getDistance(event);
mBaseRatio = mRatio;
}
else
{
float delta = (getDistance(event) - mBaseDist) / STEP;
float multi = (float)Math.pow(2, delta);
mRatio = Math.min(1024.0f, Math.max(0.1f, mBaseRatio * multi));
Matrix m = new Matrix();
m.postScale(mRatio, mRatio);
imageView.setImageMatrix(m);
}
}
return true;
}
int getDistance(MotionEvent event){
int dx = (int)(event.getX(0)-event.getX(1));
int dy = (int)(event.getY(0)-event.getY(1));
return (int)(Math.sqrt(dx*dx+dy*dy));
}*/
@Override
public int getItemPosition(Object object) {
// TODO Auto-generated method stub
return super.getItemPosition(object);
}
@Override
public void destroyItem(View container, int position, Object object) {
((ViewPager) container).removeView((View) object);
}
}