package com.marshalchen.common.demoofui.smoothswitch; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.AbsListView; import android.widget.BaseAdapter; import android.widget.GridView; import android.widget.ImageView; import android.widget.ImageView.ScaleType; import com.marshalchen.common.demoofui.R; import com.marshalchen.common.uimodule.smoothswitch.SwitchAnimationUtil; import com.marshalchen.common.uimodule.smoothswitch.SwitchAnimationUtil.*; public class GridActivity extends Activity { private GridView mGrid; private SwitchAnimationUtil mSwitchAnimationUtil; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.switch_animation_activity_grid); mGrid = (GridView) findViewById(R.id.grid); mGrid.setAdapter(new GridAdapter()); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.switch_animation_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_alpha: Constant.mType = AnimationType.ALPHA; break; case R.id.action_flip_horizon: Constant.mType = AnimationType.FLIP_HORIZON; break; case R.id.action_flip_vertical: Constant.mType = AnimationType.FLIP_VERTICAL; break; case R.id.action_horizon_left: Constant.mType = AnimationType.HORIZION_LEFT; break; case R.id.action_horizon_right: Constant.mType = AnimationType.HORIZION_RIGHT; break; case R.id.action_rotate: Constant.mType = AnimationType.ROTATE; break; case R.id.action_scale: Constant.mType = AnimationType.SCALE; break; case R.id.action_cross: Constant.mType = AnimationType.HORIZON_CROSS; break; case R.id.action_next: break; } Intent intent = new Intent(GridActivity.this, ListActivity.class); startActivity(intent); return super.onOptionsItemSelected(item); } @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (mSwitchAnimationUtil == null) { mSwitchAnimationUtil = new SwitchAnimationUtil(); mSwitchAnimationUtil.startAnimation(getWindow().getDecorView(), Constant.mType); } } private class GridAdapter extends BaseAdapter { private int[] res = new int[] { R.drawable.test, R.drawable.test_back1, R.drawable.test_back2, R.drawable.test_back }; @Override public int getCount() { return 99; } @Override public Object getItem(int arg0) { return null; } @Override public long getItemId(int arg0) { return 0; } @Override public View getView(int position, View convertView, ViewGroup arg2) { if (convertView == null) { ImageView mImage = new ImageView(GridActivity.this); AbsListView.LayoutParams params = new AbsListView.LayoutParams(440 / 4, 440 / 4); mImage.setLayoutParams(params); mImage.setScaleType(ScaleType.CENTER_CROP); mImage.setPadding(5, 5, 5, 5); convertView = mImage; convertView.setAlpha(0); } ((ImageView) convertView).setImageResource(res[position % res.length]); return convertView; } } }