이벤트가 Information.java 에서만 일어나고 나머진 안되요 ㅠ.ㅠ
그리고 혹시 그리드뷰에 버튼이벤트 하는방법아시면 좀 도와주세요 ㅠ.ㅠ
도와주세요 ㅠ.ㅠ
package my.PocketChef;
import android.app.*;
import android.content.Intent;
import android.os.*;
import android.view.*;
import android.widget.*;
public class Title extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.title);
findViewById(R.id.button_first).setOnClickListener(mClickListener);
findViewById(R.id.button_second).setOnClickListener(mClickListener);
findViewById(R.id.button_third).setOnClickListener(mClickListener);
}
Button.OnClickListener mClickListener = new Button.OnClickListener() {
public void onClick(View v) {
Intent intent;
switch (v.getId()) {
case R.id.button_first:
intent = new Intent(Title.this, List.class);
startActivity(intent);
break;
case R.id.button_second:
intent = new Intent(Title.this, Base.class);
startActivity(intent);
break;
case R.id.button_third:
intent = new Intent(Title.this, Information.class);
startActivity(intent);
break;
}
}
};
}
-------------------------------------------------------------------------------------------
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class List extends ListActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, COUNTRIES));
getListView().setTextFilterEnabled(true);
}
static final String[] COUNTRIES = new String[] {
"초간단 한그릇 요리", "저칼로리 다이어트 요리", "간단하게 만드는 간식", "대표 밥반찬"
};
public void onListItemClick(ListView list, View view, int position, long id) {
String mes;
Intent intent = new Intent(List.this, Menu.class);
startActivity(intent);
}
}
--------------------------------------------------------------------------------------------
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.Region.Op;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.OnHierarchyChangeListener;
import android.view.Window;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.Gallery.LayoutParams;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.ViewSwitcher;
public class Base extends Activity implements
AdapterView.OnItemSelectedListener, ViewSwitcher.ViewFactory {
public int selectedIndex = -1;
ImageAdapter ia;
private static int[] IMAGE_SIZE={100, 70, 50, 30, 20};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
mSwitcher = (ImageSwitcher) findViewById(R.id.switcher);
mSwitcher.setFactory(this);
mSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,
android.R.anim.fade_in));
mSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,
android.R.anim.fade_out));
ia = new ImageAdapter(this);
Gallery g = (Gallery) findViewById(R.id.gallery);
g.setCallbackDuringFling(true);
g.setAdapter(ia);
g.setOnItemSelectedListener(this);
g.setOnHierarchyChangeListener(new OnHierarchyChangeListener() {
@Override
public void onChildViewRemoved(View parent, View child) {
// TODO Auto-generated method stub
}
@Override
public void onChildViewAdded(View parent, View child) {
// TODO Auto-generated method stub
child.invalidate();
}
});
}
public void onItemSelected(AdapterView parent, View v, int position, long id) {
mSwitcher.setImageResource(mImageIds[position]);
ia.setSelectedPosition(position);
ia.notifyDataSetChanged();
}
public void onNothingSelected(AdapterView parent) {
}
public View makeView() {
ImageView i = new ImageView(this);
// i.setBackgroundColor(0xFF000000);
i.setBackgroundColor(0x00000000);
i.setScaleType(ImageView.ScaleType.FIT_CENTER);
i.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT));
return i;
}
private ImageSwitcher mSwitcher;
public class ImageAdapter extends BaseAdapter {
int mSelectedPosition = -1;
ImageView mSelectedImageView = null;
public ImageAdapter(Context c) {
mContext = c;
}
public int getCount() {
return mThumbIds.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if(convertView!=null){
imageView = (ImageView)convertView;
}else{
imageView = new ImageView(mContext);
}
imageView.setImageResource(mThumbIds[position]);
imageView.setAdjustViewBounds(false);
if(position == mSelectedPosition){
imageView.setLayoutParams(new Gallery.LayoutParams(
100, 100));
}else if(Math.abs(position-mSelectedPosition)==1 && mSelectedPosition!=-1){
imageView.setLayoutParams(new Gallery.LayoutParams(
70, 70));
}else if(Math.abs(position-mSelectedPosition)>=2 && mSelectedPosition!=-1){
int size = 0;
if(Math.abs(position-mSelectedPosition) >= IMAGE_SIZE.length){
size = IMAGE_SIZE[IMAGE_SIZE.length-1];
}else{
size = IMAGE_SIZE[Math.abs(position-mSelectedPosition)];
}
imageView.setLayoutParams(new Gallery.LayoutParams(
size, size));
if(mSelectedPosition < position){
Bitmap tmp = ((BitmapDrawable)imageView.getDrawable()).getBitmap();
Bitmap bmp = tmp.copy(tmp.getConfig(),true);
Bitmap newBmp = cropImage(bmp, 0, 0, 15, size, size, size);
imageView.setImageBitmap(newBmp);
bmp.recycle();
}
}else{
imageView.setLayoutParams(new Gallery.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
}
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
return imageView;
}
private Context mContext;
public void setSelectedPosition(int p){
mSelectedPosition = p;
}
}
//선택된것 보다 오른쪽에 있는 이미지들의 위아래가 바뀌어서 이미지의 좌측 일부를 잘라낼때 쓰는 함수
private Bitmap cropImage (Bitmap bmp, int cropLeft, int cropTop, int cropRight, int cropBottom, int width, int height){
Bitmap newBmp = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(newBmp);
canvas.drawColor(Color.TRANSPARENT);
canvas.save();
canvas.translate(0, 0);
canvas.clipRect(0, 0, width, height);
canvas.clipRect(cropLeft, cropTop, cropRight, cropBottom, Op.DIFFERENCE);
canvas.clipRect(0, 0, width, height);
canvas.drawBitmap(bmp, new Rect(0, 0, width, height), new Rect(0, 0, width, height), new Paint());
canvas.restore();
return newBmp;
}
private Integer[] mThumbIds = {
R.drawable.base1, R.drawable.base2,
R.drawable.base3, R.drawable.base4,
R.drawable.base5, R.drawable.base6};
private Integer[] mImageIds = {
R.drawable.base1, R.drawable.base2, R.drawable.base3,
R.drawable.base4, R.drawable.base5, R.drawable.base6};
}
---------------------------------------------------------------------------
package my.PocketChef;
import android.app.*;
import android.content.Intent;
import android.os.*;
import android.view.View;
import android.widget.Button;
public class Information extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.information);
findViewById(R.id.back).setOnClickListener(mClickListener);
}
Button.OnClickListener mClickListener = new Button.OnClickListener() {
public void onClick(View v) {
switch (v.getId()) {
case R.id.back:
Intent intent = new Intent(Information.this, Title.class);
startActivity(intent);
break;
}
}
};
}
-----------------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="my.PocketChef"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".PocketChef"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Title" android:label="Title" />
<activity android:name=".Base" android:label="Base" />
<activity android:name=".Information" android:label="Information" />
<activity android:name=".Lists" android:label="List" />
<activity android:name=".Menu" android:label="Menu" />
</application>