你的位置:首页 > 操作系统

[操作系统]Android自定义控件5


本文地址:http://www.cnblogs.com/wuyudong/p/5918021.html,转载请注明源地址。

本文开始实现轮播图广告系列,这篇文章首先实现让图片滑动起来(ViewPager),效果如下:

首先实现布局

<RelativeLayout ="http://schemas.android.com/apk/res/android"  ="http://schemas.android.com/tools"  android:layout_width="match_parent"  android:layout_height="match_parent"  tools:context=".MainActivity" >  <RelativeLayout    android:layout_width="match_parent"    android:layout_height="160dp" >    <android.support.v4.view.ViewPager      android:id="@+id/viewpager"      android:layout_width="match_parent"      android:layout_height="match_parent" />    <LinearLayout      android:layout_width="match_parent"      android:layout_height="40dp"      android:layout_alignParentBottom="true"      android:background="#66000000"      android:gravity="center_horizontal"      android:orientation="vertical"      android:padding="5dp" >      <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:singleLine="true"        android:text="和谐社会,和谐社会,和谐社会,和谐社会"        android:textColor="@android:color/white" />      <LinearLayout        android:id="@+id/ll_point_container"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_marginTop="5dp"        android:orientation="horizontal" >      </LinearLayout>    </LinearLayout>  </RelativeLayout></RelativeLayout>

运行项目,出现下面错误:

09-28 09:08:44.032: E/AndroidRuntime(5794): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.wuyudong.viewpager/com.wuyudong.viewpager.MainActivity}: android.view.InflateException: Binary

ViewPager是个很好很强大的控件,很多应用用它来实现很酷的效果,但是很多情况下在运行时会遇到Error inflating class android.support.v4.view.ViewPager这个问题,

这个问题的解决方法很简单:右键项目选择Build Path ->Configure Build Path,然后选择Order and export 选项.置顶android-support-v4.jar并且将该选项勾上,然后Clean下项目,重新编译问题就解决了~

接着编写逻辑代码:

package com.wuyudong.viewpager;import java.util.ArrayList;import android.os.Bundle;import android.app.Activity;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.view.Menu;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;public class MainActivity extends Activity {  private ViewPager viewPager;  private int[] imageResIds;  private ArrayList<ImageView> imageViewList;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    // 初始化布局 View 视图    initViews();    // Model 数据    initData();    // Controller 控制器    initAdapter();  }  private void initViews() {    viewPager = (ViewPager) findViewById(R.id.viewpager);    imageResIds = new int[] { R.drawable.a, R.drawable.b, R.drawable.c,        R.drawable.d, R.drawable.e };    imageViewList = new ArrayList<ImageView>();    ImageView imageView;    for (int i = 0; i < imageResIds.length; i++) {      imageView = new ImageView(this);      imageView.setBackgroundResource(imageResIds[i]);      imageViewList.add(imageView);    }  }  private void initAdapter() {    //  }  private void initData() {    // 初始化要显示的数据    viewPager.setAdapter(new MyAdapter());  }  class MyAdapter extends PagerAdapter {    @Override    public int getCount() {      return imageViewList.size();    }    // 3、指定复用的判断逻辑    @Override    public boolean isViewFromObject(View view, Object object) {      // 当滑到新的条目,又返回来,view是否可以被复用      return view == object;    }    // 1、返回要显示的条目内容,创建条目    @Override    public Object instantiateItem(ViewGroup container, int position) {      // container:容器:ViewPager      // position:当前要显示的条目的位置      ImageView imageView = imageViewList.get(position);      // a、把view对象添加到container中      container.addView(imageView);      // b、把view对象返回给框架,适配器      return imageView; // 必须要重写,否则抛异常    }    // 2、销毁条目    @Override    public void destroyItem(ViewGroup container, int position, Object object) {      // object 要销毁的对象      container.removeView((View) object);    }  }}

运行项目后效果如下:




日本旅游6天日本旅游费用多少日本旅游哪里好玩日本旅游行程深圳到日本旅游梅州客天下景区春节开放吗?梅州客天下春节门票价格? 厦门日式料理哪里好吃? 江西各市创意跨年 零点齐点灯迎新年 2015香港冬日美食节有哪些特色美食?_怎么去? 中秋节到九道谷漂流有什么优惠活动?佛山三水九道谷漂流优惠政策? 2015九道谷漂流中秋节活动?佛山九道谷漂流中秋节门票多少钱? 怡情谷响水漂流安全吗?惠州怡情谷响水漂流刺激吗? 雷公峡优惠漂流票怎么买?惠州雷公峡漂流预订什么价格? 清远天子山地址?清远天子山图片? 清远天子山怎么走?清远天子山有葡萄园吗? 深圳大鹏古城好玩吗?深圳大鹏古城自助游? 深圳大鹏古城怎么去?深圳大鹏古城自助游攻略? 椰梦长廊在哪里_椰梦长廊地址_椰梦长廊怎么去 南山文化旅游区游览须知 姚晨大婚为何选在新西兰皇后镇 南天一柱在哪里_南天一柱在哪个省 M04-0805QEC Datasheet M04-0805QEC Datasheet M04-0805QGC Datasheet M04-0805QGC Datasheet M04-0805QNC Datasheet M04-0805QNC Datasheet 黄河壶口瀑布位于陕西与哪个省之间 黄河壶口瀑布位于陕西与哪个省之间 黄河壶口瀑布位于陕西与哪个省之间 迪拜塔在哪个国家 迪拜塔在哪个国家 迪拜塔在哪个国家 成都东区音乐公园门票 成都东区音乐公园门票 成都东区音乐公园门票