最近突然对安卓有兴趣,就看了下文档,做了一个ViewPager的例子。以供以后学习
首先Main.xml,里面就一个ViewPager
1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 android:orientation="vertical" 3 android:layout_width="fill_parent" android:layout_height="fill_parent"> 4 5 <android.support.v4.view.ViewPager 6 android:id="@+id/pager" 7 android:layout_width="fill_parent" 8 android:layout_height="fill_parent"> 9 </android.support.v4.view.ViewPager> 10 11 </LinearLayout>
然后是MainActivity.java
package com.example.viewpagerdemo; import java.io.IOException; import java.io.InputStream; import android.content.res.AssetManager; import android.graphics.drawable.Drawable; import android.os.Bundle; 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.app.ListFragment; import android.support.v4.view.ViewPager; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.View.OnClickListener; import android.view.Window; import android.view.WindowManager; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; public class MainActivity extends FragmentActivity { static final int NUM_ITEMS = 10; MyAdapter mAdapter; static String[] strs = new String[2]; ViewPager mPager; static AssetManager asm; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_NO_TITLE); this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_main); asm=getAssets(); mAdapter = new MyAdapter(getSupportFragmentManager()); mPager = (ViewPager)findViewById(R.id.pager); mPager.setAdapter(mAdapter); // Watch for button clicks. /**Button button = (Button)findViewById(R.id.goto_first); button.setOnClickListener(new OnClickListener() { public void onClick(View v) { mPager.setCurrentItem(0); } }); button = (Button)findViewById(R.id.goto_last); button.setOnClickListener(new OnClickListener() { public void onClick(View v) { mPager.setCurrentItem(NUM_ITEMS-1); } });*/ } public static class MyAdapter extends FragmentPagerAdapter { public MyAdapter(FragmentManager fm) { super(fm); } @Override public int getCount() { return NUM_ITEMS; } @Override public Fragment getItem(int position) { return ArrayListFragment.newInstance(position); } } public static class ArrayListFragment extends Fragment { int mNum; /** * Create a new instance of CountingFragment, providing "num" * as an argument. */ static ArrayListFragment newInstance(int num) { ArrayListFragment f = new ArrayListFragment(); // Supply num input as an argument. Bundle args = new Bundle(); args.putInt("num", num); f.setArguments(args); return f; } /** * When creating, retrieve this instance's number from its arguments. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mNum = getArguments() != null ? getArguments().getInt("num") : 1; } /** * The Fragment's UI is just a simple text view showing its * instance number. */ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_pager_list, container, false); ImageView tv = (ImageView)v.findViewById(R.id.imagev); InputStream is = null; try { is = asm.open("test" + mNum + ".jpg"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } Drawable da = Drawable.createFromStream(is, null); tv.setImageDrawable(da); return v; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); //setListAdapter(new ArrayAdapter<String>(getActivity(), // android.R.layout.simple_list_item_1, Cheeses.sCheeseStrings )); } //@Override //public void onListItemClick(ListView l, View v, int position, long id) { // Log.i("FragmentList", "Item clicked: " + id); //} } }
MainActivity调用一个Fragment layout,里面放一个IamgeView,这个layout动态加载asset文件夹里的图片
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content"> <ImageView android:id="@+id/imagev" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </FrameLayout>