Android—MyGuideView(海贼王人物的资料)
2014-12-12 14:33
169 查看
第一次启动android应用程序,介绍软件主要功能及引导用户使用该应用。MyGuideView可以是静态的光图片,也
可以是动态的加点击事件,甚至是加简单的动画效果。本来在网上找来着,可好多代码都不全,最后找了了几个组
合了一下我这个做的是加点击效果的,点击文字就会弹出一个显示框。
源代码下载:点击打开链接
效果图:
海贼王的介绍
代码:
1.
2.XML文件:
item01.xml:
以此类推有9个这种的XML文件
可以是动态的加点击事件,甚至是加简单的动画效果。本来在网上找来着,可好多代码都不全,最后找了了几个组
合了一下我这个做的是加点击效果的,点击文字就会弹出一个显示框。
源代码下载:点击打开链接
效果图:
文字点击后效果 | 文字点击后效果 | 文字点击后效果 |
1.
public class MyGuideViewActivity extends Activity { private ViewPager viewPager; private ArrayList<View> pageViews; private ImageView imageView; private ImageView[] imageViews; // 包裹滑动图片LinearLayout private ViewGroup main; // 包裹小圆点的LinearLayout private ViewGroup group; private TextView tv1; private TextView tv2; private TextView tv3; private TextView tv4; private TextView tv5; private TextView tv6; private TextView tv7; private TextView tv8; private TextView tv9; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 设置无标题窗口 requestWindowFeature(Window.FEATURE_NO_TITLE); LayoutInflater inflater = getLayoutInflater(); View v5 = inflater.inflate(R.layout.item05, null); View v6 = inflater.inflate(R.layout.item06, null); View v1 = inflater.inflate(R.layout.item01, null); View v2 = inflater.inflate(R.layout.item02, null); View v3 = inflater.inflate(R.layout.item03, null); View v4 = inflater.inflate(R.layout.item04, null); View v7 = inflater.inflate(R.layout.item07, null); View v8 = inflater.inflate(R.layout.item08, null); View v9 = inflater.inflate(R.layout.item09, null); pageViews = new ArrayList<View>(); pageViews.add(v5); pageViews.add(v6); pageViews.add(v1); pageViews.add(v2); pageViews.add(v3); pageViews.add(v4); pageViews.add(v7); pageViews.add(v8); pageViews.add(v9); imageViews = new ImageView[pageViews.size()]; main = (ViewGroup)inflater.inflate(R.layout.main, null); group = (ViewGroup)main.findViewById(R.id.viewGroup); viewPager = (ViewPager)main.findViewById(R.id.guidePages); for (int i = 0; i < pageViews.size(); i++) { imageView = new ImageView(MyGuideViewActivity.this); imageView.setLayoutParams(new LayoutParams(20,20)); imageView.setPadding(20, 0, 20, 0); imageViews[i] = imageView; if (i == 0) { //默认选中第一张图片 imageViews[i].setBackgroundResource(R.drawable.page_indicator_focused); } else { imageViews[i].setBackgroundResource(R.drawable.page_indicator); } group.addView(imageViews[i]); } setContentView(main); // 监听子页面事件 tv1 = (TextView)v1.findViewById(R.id.textView1); tv1.setOnClickListener(new TextViewOnClickListener()); tv2 = (TextView)v2.findViewById(R.id.textView2); tv2.setOnClickListener(new TextViewOnClickListener()); tv3 = (TextView)v3.findViewById(R.id.textView3); tv3.setOnClickListener(new TextViewOnClickListener()); tv4 = (TextView)v4.findViewById(R.id.textView4); tv4.setOnClickListener(new TextViewOnClickListener()); tv5 = (TextView)v5.findViewById(R.id.textView5); tv5.setOnClickListener(new TextViewOnClickListener()); tv6 = (TextView)v6.findViewById(R.id.textView6); tv6.setOnClickListener(new TextViewOnClickListener()); tv7 = (TextView)v7.findViewById(R.id.textView7); tv7.setOnClickListener(new TextViewOnClickListener()); tv8 = (TextView)v8.findViewById(R.id.textView8); tv8.setOnClickListener(new TextViewOnClickListener()); tv9 = (TextView)v9.findViewById(R.id.textView9); tv9.setOnClickListener(new TextViewOnClickListener()); viewPager.setAdapter(new GuidePageAdapter()); viewPager.setOnPageChangeListener(new GuidePageChangeListener()); } // 事件监听器 private class TextViewOnClickListener implements OnClickListener { @Override public void onClick(View v) { // TODO Auto-generated method stub Toast.makeText(MyGuideViewActivity.this, ((TextView) v).getText(), Toast.LENGTH_LONG).show(); } } // 指引页面数据适配器 private class GuidePageAdapter extends PagerAdapter { @Override public int getCount() { return pageViews.size(); } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1; } @Override public int getItemPosition(Object object) { // TODO Auto-generated method stub return super.getItemPosition(object); } @Override public void destroyItem(View arg0, int arg1, Object arg2) { // TODO Auto-generated method stub ((ViewPager) arg0).removeView(pageViews.get(arg1)); } @Override public Object instantiateItem(View arg0, int arg1) { // TODO Auto-generated method stub ((ViewPager) arg0).addView(pageViews.get(arg1)); return pageViews.get(arg1); } @Override public void restoreState(Parcelable arg0, ClassLoader arg1) { // TODO Auto-generated method stub } @Override public Parcelable saveState() { // TODO Auto-generated method stub return null; } @Override public void startUpdate(View arg0) { // TODO Auto-generated method stub } @Override public void finishUpdate(View arg0) { // TODO Auto-generated method stub } } // 指引页面更改事件监听器 private class GuidePageChangeListener implements OnPageChangeListener { @Override public void onPageScrollStateChanged(int arg0) { // TODO Auto-generated method stub } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { // TODO Auto-generated method stub } @Override public void onPageSelected(int arg0) { for (int i = 0; i < imageViews.length; i++) { imageViews[arg0] .setBackgroundResource(R.drawable.page_indicator_focused); if (arg0 != i) { imageViews[i] .setBackgroundResource(R.drawable.page_indicator); } } } } }
2.XML文件:
item01.xml:
<?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" > <LinearLayout android:id="@+id/linearLayout01" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > </LinearLayout> <LinearLayout android:id="@+id/linearLayout02" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:background="@drawable/divider_horizontal_line"> </LinearLayout> <LinearLayout android:id="@+id/linearLayout1" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <ImageView android:layout_width="fill_parent" android:layout_height="250dp" android:background="@drawable/feature_guide_0" /> </LinearLayout> <LinearLayout android:id="@+id/linearLayout2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:background="@drawable/bg" > <LinearLayout android:id="@+id/linearLayout03" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:layout_marginTop="@dimen/item01_padding" android:layout_marginBottom="@dimen/item01_padding" android:layout_marginLeft="@dimen/item01_padding" android:layout_marginRight="@dimen/item01_padding" android:background="@drawable/divider_horizontal_line" > </LinearLayout> <LinearLayout android:id="@+id/linearLayout3" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#000000" android:paddingLeft="@dimen/item01_padding" android:paddingRight="@dimen/item01_padding" android:text="@string/text1" /> </LinearLayout> </LinearLayout> </LinearLayout>
以此类推有9个这种的XML文件
相关文章推荐
- android SurfaceView实现人物动画
- 【android】WebView缓存资料收集
- android自定义view学习资料
- Android各种切换特效资料收集(3D, Launcher, viewanimator,animation...) 持续更新
- [置顶] Android实现自定义的折线图MyChartView
- Android自定义View资料
- android学习之LayoutInflater的用法,在myAdapter getView()里将多个TextView组件压缩成一个View控件,并在listView里显示
- android开发之自定义View 详解 资料整理 小冰原创整理,原创作品。
- 《Android View 的事件分发和滑动冲突》 —预习资料
- Android自定义View资料
- Android 自定义view canvas 使用资料查找
- android处理2个ScrollView联动问题 /MyHScrollView extends HorizontalScrollView
- android开发之自定义View 详解 资料整理 小冰原创整理,原创作品。
- Android学QQ空间相册浏览类型横向滑动效果显示多图片MyHorizontalScrollView
- Android中带分割线的GridView-MyGraidView
- Android Share My Custom View Widget ------ RenderFocusView 点击焦点渲染控件(水波纹)
- Android - MyViewPagerActivity.java
- KJFrameForAndroid 资料——KJViewPager用法样例
- android:mysurfaceview
- android开发之自定义View 详解 资料整理 小冰原创整理,原创作品。