标签:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity- //第三个
<RelativeLayoutandroid:id="@+id/level3"android:layout_width="280dp"android:layout_height="140dp"android:layout_alignParentBottom="true"android:layout_centerHorizontal="true"android:background="@drawable/level3" ><ImageViewandroid:id="@+id/channel1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@drawable/channel1"android:layout_alignParentBottom="true"android:layout_marginLeft="10dp"android:layout_marginBottom="10dp"/><ImageViewandroid:id="@+id/channel2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_above="@id/channel1"android:layout_alignLeft="@id/channel1"android:layout_marginBottom="6dp"android:layout_marginLeft="20dp"android:background="@drawable/channel2" /><ImageViewandroid:id="@+id/channel3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_above="@id/channel2"android:layout_alignLeft="@id/channel2"android:layout_marginBottom="6dp"android:layout_marginLeft="30dp"android:background="@drawable/channel3" /><ImageViewandroid:id="@+id/channel4"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerHorizontal="true"android:layout_marginTop="5dp"android:background="@drawable/channel4" /><ImageViewandroid:id="@+id/channel7"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@drawable/channel7"android:layout_alignParentBottom="true"android:layout_alignParentRight="true"android:layout_marginBottom="10dp"android:layout_marginRight="10dp"/><ImageViewandroid:id="@+id/channel6"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_above="@id/channel7"android:layout_alignRight="@id/channel7"android:layout_marginBottom="6dp"android:layout_marginRight="20dp"android:background="@drawable/channel6" /><ImageViewandroid:id="@+id/channel5"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_above="@id/channel6"android:layout_alignRight="@id/channel6"android:layout_marginBottom="6dp"android:layout_marginRight="30dp"android:background="@drawable/channel5" /></RelativeLayout></RelativeLayout>
public class MyUtils {/*** 让指定的view 执行 旋转离开的动画* @param view*/public static void startAnimOut(RelativeLayout view) {startAnimOut(view, 0);}/*** 让指定view 延时 执行旋转离开的动画,* @param level3* @param offset 延时的时间*/public static void startAnimOut(RelativeLayout view, long offset) {/** 默认圆为 为view的左上角,* 水平向右 为 0度* 顺时针旋转度数增加*/RotateAnimation animation =new RotateAnimation(0, 180, view.getWidth()/2, view.getHeight());animation.setDuration(500); // 设置运行的时间animation.setFillAfter(true); //动画执行完以后,保持最后的状态animation.setStartOffset(offset); // 设置延时执行的时间view.startAnimation(animation);}/*** 让指定的view 执行 旋转进入的动画* @param view*/public static void startAnimIn(RelativeLayout view) {startAnimIn(view, 0);}/*** 让指定的view 延时执行 旋转进入的动画* @param level2* @param i 延时的时间*/public static void startAnimIn(RelativeLayout view, int i) {/** 默认圆为 为view的左上角,* 水平向右 为 0度* 顺时针旋转度数增加*/RotateAnimation animation =new RotateAnimation(180, 360, view.getWidth()/2, view.getHeight());animation.setDuration(500); // 设置运行的时间animation.setFillAfter(true); //动画执行完以后,保持最后的状态animation.setStartOffset(i); //设置延时执行的时间view.startAnimation(animation);}}
public class MainActivity extends Activity implements OnClickListener {private ImageView icon_menu;private ImageView icon_home;private RelativeLayout level1;private RelativeLayout level2;private RelativeLayout level3;/*** 判断 第3级菜单是否显示* true 为显示*/private boolean isLevel3Show = true;/*** 判断 第2级菜单是否显示* true 为显示*/private boolean isLevel2Show = true;/*** 判断 第1级菜单是否显示* true 为显示*/private boolean isLevel1show = true;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);icon_home = (ImageView) findViewById(R.id.icon_home);icon_menu = (ImageView) findViewById(R.id.icon_menu);level1 = (RelativeLayout) findViewById(R.id.level1);level2 = (RelativeLayout) findViewById(R.id.level2);level3 = (RelativeLayout) findViewById(R.id.level3);icon_home.setOnClickListener(this);icon_menu.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.icon_menu: //处理 menu 图标的点击事件// 如果第3级菜单是显示状态,那么将其隐藏if(isLevel3Show){//隐藏 第3级菜单MyUtils.startAnimOut(level3);}else{// 如果第3级菜单是隐藏状态,那么将其显示MyUtils.startAnimIn(level3);}isLevel3Show = !isLevel3Show;break;case R.id.icon_home: //处理 home 图标 的点击事件// 如果第2级菜单是显示状态,那么就隐藏,2,3级菜单if(isLevel2Show ){MyUtils.startAnimOut(level2);isLevel2Show = false;if(isLevel3Show){ // 如果此时,第3级菜单也显示,那也将其隐藏MyUtils.startAnimOut(level3,200);isLevel3Show = false;}}else{// 如果第2级菜单是隐藏状态,那么就显示2级菜单MyUtils.startAnimIn(level2);isLevel2Show = true;}break;}}/*** 改变第1级菜单的状态*/private void changeLevel1State() {//如果第1级菜单是显示状态,那么就隐藏 1,2,3级菜单if(isLevel1show){MyUtils.startAnimOut(level1);isLevel1show = false;if(isLevel2Show){ // 判断2级菜单是否显示MyUtils.startAnimOut(level2,100);isLevel2Show = false;if(isLevel3Show){ // 判断3级菜单是否显示MyUtils.startAnimOut(level3,200);isLevel3Show = false;}}}else{//如果第1级菜单是隐藏状态,那么就显示 1,2级菜单MyUtils.startAnimIn(level1);isLevel1show = true;MyUtils.startAnimIn(level2,200);isLevel2Show = true;}}@Override/*** 响应按键的动作*/public boolean onKeyDown(int keyCode, KeyEvent event) {if(keyCode == KeyEvent.KEYCODE_MENU){ // 监听 menu 按键changeLevel1State();}return super.onKeyDown(keyCode, event);}}
public class MainActivity extends Activity {private ViewPager viewPager;private LinearLayout pointGroup;private TextView iamgeDesc;// 图片资源IDprivate final int[] imageIds = { R.drawable.a, R.drawable.b, R.drawable.c,R.drawable.d, R.drawable.e };//图片标题集合private final String[] imageDescriptions = {"巩俐不低俗,我就不能低俗","扑树又回来啦!再唱经典老歌引万人大合唱","揭秘北京电影如何升级","乐视网TV版大派送","热血屌丝的反杀"};private ArrayList<ImageView> imageList;/*** 上一个页面的位置*/protected int lastPosition;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);viewPager = (ViewPager) findViewById(R.id.viewpager);pointGroup = (LinearLayout) findViewById(R.id.point_group);iamgeDesc = (TextView) findViewById(R.id.image_desc);iamgeDesc.setText(imageDescriptions[0]);imageList = new ArrayList<ImageView>();for (int i = 0; i <imageIds.length; i++) {//初始化图片资源ImageView image = new ImageView(this);image.setBackgroundResource(imageIds[i]);imageList.add(image);//添加指示点ImageView point =new ImageView(this);LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);params.rightMargin = 20;point.setLayoutParams(params);point.setBackgroundResource(R.drawable.point_bg);if(i==0){point.setEnabled(true);}else{point.setEnabled(false);}pointGroup.addView(point);}viewPager.setAdapter(new MyPagerAdapter());// viewPager.setCurrentItem(Integer.MAX_VALUE/2 - (Integer.MAX_VALUE/2%imageList.size())) ;viewPager.setOnPageChangeListener(new OnPageChangeListener() {@Override/*** 页面切换后调用* position 新的页面位置*/public void onPageSelected(int position) {position = position%imageList.size();//设置文字描述内容iamgeDesc.setText(imageDescriptions[position]);//改变指示点的状态//把当前点enbale 为truepointGroup.getChildAt(position).setEnabled(true);//把上一个点设为falsepointGroup.getChildAt(lastPosition).setEnabled(false);lastPosition = position;}@Override/*** 页面正在滑动的时候,回调*/public void onPageScrolled(int position, float positionOffset,int positionOffsetPixels) {}@Override/*** 当页面状态发生变化的时候,回调*/public void onPageScrollStateChanged(int state) {}});/** 自动循环:* 1、定时器:Timer* 2、开子线程 while true 循环* 3、ColckManager* 4、 用handler 发送延时信息,实现循环*/isRunning = true;// handler.sendEmptyMessageDelayed(0, 2000);}/*** 判断是否自动滚动*/private boolean isRunning = false;private Handler handler = new Handler(){public void handleMessage(android.os.Message msg) {//让viewPager 滑动到下一页viewPager.setCurrentItem(viewPager.getCurrentItem()+1);if(isRunning){handler.sendEmptyMessageDelayed(0, 2000);}};};protected void onDestroy() {isRunning = false;};private class MyPagerAdapter extends PagerAdapter {@Override/*** 获得页面的总数*/public int getCount() {return Integer.MAX_VALUE;}@Override/*** 获得相应位置上的view* container view的容器,其实就是viewpager自身* position 相应的位置*/public Object instantiateItem(ViewGroup container, int position) {System.out.println("instantiateItem ::"+position);// 给 container 添加一个viewcontainer.addView(imageList.get(position%imageList.size()));//返回一个和该view相对的objectreturn imageList.get(position%imageList.size());}@Override/*** 判断 view和object的对应关系*/public boolean isViewFromObject(View view, Object object) {if(view == object){return true;}else{return false;}}@Override/*** 销毁对应位置上的object*/public void destroyItem(ViewGroup container, int position, Object object) {System.out.println("destroyItem ::"+position);container.removeView((View) object);object = null;}}}

public class MainActivity extends Activity {private EditText input;private ImageView downArrow;private List<String> msgList;private PopupWindow popWin;private ListView listView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);input = (EditText) findViewById(R.id.input);downArrow = (ImageView) findViewById(R.id.down_arrow);msgList = new ArrayList<String>();for (int i = 0; i < 20; i++) {msgList.add("1000000000"+i);}initListView();downArrow.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {System.out.println("=======");//定义 popupWindowpopWin = new PopupWindow(MainActivity.this);popWin.setWidth(input.getWidth()); //设置宽度popWin.setHeight(200); //设置popWin 高度popWin.setContentView(listView); //为popWindow填充内容popWin.setOutsideTouchable(true); // 点击popWin 以处的区域,自动关闭 popWinpopWin.showAsDropDown(input, 0, 0);//设置 弹出窗口,显示的位置}});}private void initListView() {listView = new ListView(this);listView.setBackgroundResource(R.drawable.listview_background); //设置listView 背景listView.setDivider(null); //设置条目之间的分隔线为nulllistView.setVerticalScrollBarEnabled(false); // 关闭listView.setAdapter(new MyListAdapter());}private class MyListAdapter extends BaseAdapter{@Overridepublic int getCount() {return msgList.size();}@Overridepublic Object getItem(int position) {return position;}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(final int position, View convertView, ViewGroup parent) {ViewHolder holder;if(convertView == null){convertView = View.inflate(getApplicationContext(), R.layout.list_item, null);holder = new ViewHolder();holder.delete = (ImageView) convertView.findViewById(R.id.delete);holder.tv_msg =(TextView) convertView.findViewById(R.id.tv_list_item);convertView.setTag(holder);}else{holder = (ViewHolder) convertView.getTag();}holder.tv_msg.setText(msgList.get(position));holder.delete.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {//删除对应的条目msgList.remove(position);//刷新listViewMyListAdapter.this.notifyDataSetChanged();}});convertView.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {//设置输入框input.setText(msgList.get(position));popWin.dismiss();}});return convertView;}}private class ViewHolder{TextView tv_msg;ImageView delete;}}
标签:
原文地址:http://www.cnblogs.com/liuyu0529/p/5021875.html