Android—ViewPager+布局xml(View)

来源:互联网 发布:java class反编译工具 编辑:程序博客网 时间:2024/06/08 07:13

一、效果图 

第一种:(图片轮换)

            


第二种:(布局轮换(View轮换))

①     ②        

二、布局文件

主布局

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="com.example.myapplication.ViewpagerActivity">    <android.support.v4.view.ViewPager        android:layout_width="match_parent"        android:layout_height="match_parent"        android:id="@+id/view_page_iamges"        >    </android.support.v4.view.ViewPager></LinearLayout>

数据源布局:

布局一、

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical" android:layout_width="match_parent"    android:layout_height="match_parent">    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:id="@+id/b1"        android:text="按钮一"/>    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@id/b1"        android:id="@+id/b2"        android:layout_toRightOf="@id/b1"        android:text="按钮二"/>    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_toRightOf="@id/b2"        android:text="按钮三"/>    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@id/b2"        android:layout_toLeftOf="@id/b2"        android:text="按钮四"/>    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@id/b2"        android:layout_toRightOf="@id/b2"        android:text="按钮五"/></RelativeLayout>

布局二、

<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical" android:layout_width="match_parent"    android:layout_height="match_parent">    <TextView        android:layout_width="280dp"        android:layout_height="280dp"        android:background="#ff0000"        android:layout_gravity="center"        />    <TextView        android:layout_width="240dp"        android:layout_height="240dp"        android:background="#00ff00"        android:layout_gravity="center"        />    <TextView    android:layout_width="200dp"    android:layout_height="200dp"    android:background="#0000ff"    android:layout_gravity="center"    />    <TextView        android:layout_width="160dp"        android:layout_height="160dp"        android:background="#ffee00"        android:layout_gravity="center"        />    <TextView        android:layout_width="120dp"        android:layout_height="120dp"        android:background="#00ffe1"        android:layout_gravity="center"        /></FrameLayout>



布局三、

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        >        <Button            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="左上按钮"            />        <LinearLayout            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:gravity="right"            >            <Button                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:text="右上按钮"                />        </LinearLayout>    </LinearLayout>    <LinearLayout        android:layout_width="match_parent"        android:layout_height="420dp"        android:gravity="center"        >        <Button            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="中间按钮"            android:layout_gravity="center"            />    </LinearLayout>    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:gravity="bottom"        >        <Button            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="左下按钮"            />        <LinearLayout            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:gravity="right"            >            <Button                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:text="右下按钮"                />        </LinearLayout>    </LinearLayout></LinearLayout>


三、Java代码

package com.example.myapplication;import android.content.Intent;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import java.util.ArrayList;import java.util.List;public class ViewpagerActivity extends AppCompatActivity {    //第一种的图片数据源//    private int images[]={R.drawable.cat,R.drawable.bird,R.drawable.fox};    //第二种的图片数据源    private int images[]={R.layout.linear,R.layout.acitivity_rel,R.layout.farme};    private List<View> views=new ArrayList<>();    private ViewPager view_page_iamges;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_viewpager);        view_page_iamges = (ViewPager) findViewById(R.id.view_page_iamges);        //第一种,实现图片的切换      /*  for (int i = 0; i < images.length; i++) {            ImageView iv=new ImageView(this);            iv.setImageResource(images[i]);            views.add(iv);        }*/       //第二种实现布局的切换        for (int i = 0; i < images.length; i++) {          View v=getLayoutInflater().inflate(images[i],null);            views.add(v);        }          view_page_iamges.setAdapter(new myAdapter());    }    class myAdapter extends PagerAdapter{        @Override        public int getCount() {            return views.size();        }        @Override        public boolean isViewFromObject(View view, Object object) {            return view==object;//官方也是这样写的        }        @Override        public Object instantiateItem(ViewGroup container, int position) {            View v=views.get(position);            container.addView(v);            return v;        }        @Override        public void destroyItem(ViewGroup container, int position, Object object) {            View v=views.get(position);            container.removeView(v);        }    }}


原创粉丝点击