//gallery클래스
package com.example.profile;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import com.szugyi.circlemenu.R;
public class gallery extends Activity {
GridView gridview;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gallery);
gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(this));
}
}
class ImageAdapter extends BaseAdapter {
// 참조할 이미지 목록tab
private Integer[] image = { R.drawable.ga1, R.drawable.ga2, R.drawable.ga3,
R.drawable.ga4, R.drawable.ga5, R.drawable.ga6, R.drawable.ga7,
R.drawable.ga8, R.drawable.ga9 };
Context mcontext;// 상위클래스로부터 context를 받음= 이유:이미지뷰를 상위로 보내야하기에.
// BaseAdapter 4개의 메소드를 자동으로 오버라이딩 해야함
// GireviewActivity클래스에 Imageview를 넘겨줘야 하기에 Context를 받아옴
public ImageAdapter(Context context) {
mcontext = context;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return image.length;// 현제 이미지의 총개수를 리턴
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
// 사용자가 화면을 드레그할때마다 자동으로 호출되는 콜백 메소드 입니다.
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
// 이미지를 화면에 보여줄 imageview 메소드를 선언
ImageView imageview = new ImageView(mcontext);
// 이미지뷰의 크기를 지정
imageview.setLayoutParams(new GridView.LayoutParams(85, 85));
// 이미지가 크더라도 고정시키시오 = 넓이와 높이를 고정
imageview.setScaleType(ImageView.ScaleType.FIT_XY);
// 이미지 부착
imageview.setImageResource(image[arg0]);
System.out.println(image[arg0]); // 이미지를 한번에 로딩해서 보관하는게 아니라 사용자가 화면을 드레그
// 하는순가 나타
// getView(int arg0, View arg1, ViewGroup arg2) 가 실행되는 겁니다.
return imageview;
}
}
//mainactivity클래스
package com.example.profile;
import com.szugyi.circlemenu.R;
import com.szugyi.circlemenu.*;
import android.app.TabActivity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.widget.TabHost;
@SuppressWarnings("deprecation")
public class MainActivity extends TabActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
com.szugyi.circlemenu.MainActivity ActivityA = (com.szugyi.circlemenu.MainActivity) com.szugyi.circlemenu.MainActivity.A;
ActivityA.finish();
Resources res = this.getResources();
TabHost tabhost = this.getTabHost();
TabHost.TabSpec spec;
Intent intent = null;
intent = new Intent().setClass(this, pro.class);
spec = tabhost.newTabSpec("pro")
.setIndicator("소개", res.getDrawable(R.drawable.my))
.setContent(intent);
tabhost.addTab(spec);
intent = new Intent().setClass(this, gallery.class);
spec = tabhost.newTabSpec("gallery")
.setIndicator("갤러리", res.getDrawable(R.drawable.gallery))
.setContent(intent);
tabhost.addTab(spec);
intent = new Intent().setClass(this, interest.class);
spec = tabhost.newTabSpec("interest")
.setIndicator("알바", res.getDrawable(R.drawable.alba))
.setContent(intent);
tabhost.addTab(spec);
intent = new Intent().setClass(this, food.class);
spec = tabhost.newTabSpec("food")
.setIndicator("음식", res.getDrawable(R.drawable.food))
.setContent(intent);
tabhost.addTab(spec);
intent = new Intent().setClass(this, summer.class);
spec = tabhost.newTabSpec("summer")
.setIndicator("여름계획", res.getDrawable(R.drawable.summer))
.setContent(intent);
tabhost.addTab(spec);
tabhost.setCurrentTab(0);
}
}
//그리드뷰xml
<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:numColumns="auto_fit"
android:verticalSpacing="2dp"
android:horizontalSpacing="2dp"
android:columnWidth="90dp"
android:stretchMode="columnWidth"
android:gravity="center"
/>
mianactivity에서 갤러리탭을 누르면 그리드뷰로 넘어가려고 하는데 계속 오류가 뜨네요......
안드로이드 초보자이지만 미숙한 로그캣이용을 하면서 아무리 오류를 찾아봐도 안나오네요,,,,
무엇이 잘못되었는지 궁금합니다. 도움부탁드려요 ㅠㅠ