Android 游戏中使用的 左右滑动菜单

来源:互联网 发布:阿里云备案换服务器 编辑:程序博客网 时间:2024/06/07 01:19

有些东西 找了半天 不如自己创造一个出来. 效果如图 游戏中用烂了的效果..不知道 他们是不是这么做的

简单 使用supportV4

package com.eyeandroid.viewpager;import java.util.ArrayList;import java.util.List;import java.util.concurrent.atomic.AtomicInteger;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.os.Parcelable;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentActivity;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.support.v4.view.ViewPager.OnPageChangeListener;import android.view.MotionEvent;import android.view.View;import android.view.View.OnTouchListener;import android.view.ViewGroup;import android.view.ViewGroup.LayoutParams;import android.widget.ImageView;/** * right - left drag menu with supportV4 *  * @author sfshine *  */public class MainActivity extends FragmentActivity {private ImageView[] imageViews = null;private ImageView imageView = null;private ViewPager advPager = null;private AtomicInteger what = new AtomicInteger(0);private boolean isContinue = true;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);initViewPager();}private void initViewPager() {advPager = (ViewPager) findViewById(R.id.adv_pager);ViewGroup group = (ViewGroup) findViewById(R.id.viewGroup);List<Fragment> fragments = new ArrayList<Fragment>();for (int i = 0; i < 10; i++) {Fragment chatFragment1 = new ActivityFragment(this, i);fragments.add(chatFragment1);}imageViews = new ImageView[fragments.size()];for (int i = 0; i < fragments.size(); i++) {imageView = new ImageView(this);imageView.setLayoutParams(new LayoutParams(20, 20));imageView.setPadding(5, 5, 5, 5);imageViews[i] = imageView;if (i == 0) {imageViews[i].setBackgroundResource(R.drawable.banner_dian_focus);} else {imageViews[i].setBackgroundResource(R.drawable.banner_dian_blur);}group.addView(imageViews[i]);}advPager.setAdapter(new MyFragmentPagerAdapter(getSupportFragmentManager(), fragments));advPager.setOnPageChangeListener(new GuidePageChangeListener());advPager.setOnTouchListener(new OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {switch (event.getAction()) {case MotionEvent.ACTION_DOWN:case MotionEvent.ACTION_MOVE:isContinue = false;break;case MotionEvent.ACTION_UP:isContinue = true;break;default:isContinue = true;break;}return false;}});}private final class GuidePageChangeListener implements OnPageChangeListener {@Overridepublic void onPageScrollStateChanged(int arg0) {}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {}@Overridepublic void onPageSelected(int arg0) {what.getAndSet(arg0);for (int i = 0; i < imageViews.length; i++) {imageViews[arg0].setBackgroundResource(R.drawable.banner_dian_focus);if (arg0 != i) {imageViews[i].setBackgroundResource(R.drawable.banner_dian_blur);}}}}public class MyFragmentPagerAdapter extends FragmentPagerAdapter {private List<Fragment> fragmentsList;public MyFragmentPagerAdapter(FragmentManager fm) {super(fm);}public MyFragmentPagerAdapter(FragmentManager fm,List<Fragment> fragments) {super(fm);this.fragmentsList = fragments;}@Overridepublic int getCount() {return fragmentsList.size();}@Overridepublic Fragment getItem(int arg0) {return fragmentsList.get(arg0);}@Overridepublic int getItemPosition(Object object) {return super.getItemPosition(object);}}}

package com.eyeandroid.viewpager;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import android.R.integer;import android.content.Context;import android.os.Bundle;import android.support.v4.app.Fragment;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ListView;import android.widget.TextView;/** *  * @author sfshine *  */public class ActivityFragment extends Fragment {private static final String TAG = "ActivityFragment";private ListView privile_lv;private Context context;private int i;// i is just a code to demostrate that we can get parames when// the fragment was be created.public ActivityFragment(Context context) {super();this.context = context;}public ActivityFragment(Context context, int i) {super();this.context = context;this.i = i;}public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View view = inflater.inflate(R.layout.main, container, false);// just do what you want to do in this view!TextView textView = new TextView(getActivity());textView.setText("I am from frament,my number is " + i);Log.e(TAG, "the view of number " + i + " frament has been created");return textView;}@Overridepublic void onDestroy() {super.onDestroy();}}

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <RelativeLayout        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:orientation="vertical" >        <android.support.v4.view.ViewPager            android:id="@+id/adv_pager"            android:layout_width="fill_parent"            android:layout_height="fill_parent" >                    </android.support.v4.view.ViewPager>        <LinearLayout            android:id="@+id/viewGroup"            android:layout_below="@id/adv_pager"            android:layout_width="fill_parent"            android:layout_height="wrap_content"            android:layout_marginTop="-25px"            android:gravity="right"            android:orientation="horizontal" >        </LinearLayout>    </RelativeLayout></LinearLayout>






原创粉丝点击