在线网站制作梅州兴宁网站建设培训
一.Gallery 画廊(过时的控件,被ViewPager替代)
作用:用来展示图片的,滑一下下一张
效果图:
具体实现代码:
layout
activity_gallery.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="match_parent"android:layout_height="match_parent"><Galleryandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/g_gallery_image"></Gallery></LinearLayout>
Java
GalleryActivity.java
package com.zking.android09_widgetplus;import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.GridLayoutManager;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;/*** Created by Administrator on 2017/6/13 0013.*/public class GalleryActivity extends AppCompatActivity{private Gallery g_gallery_image;private int images[]={R.drawable.s1,R.drawable.s2,R.drawable.s3,R.drawable.s4,};@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_gallery);g_gallery_image = (Gallery) findViewById(R.id.g_gallery_image);g_gallery_image.setAdapter(new MyAdapter());}//设置自定义适配器class MyAdapter extends BaseAdapter{@Overridepublic int getCount() {return images.length;}@Overridepublic Object getItem(int position) {return images[position];}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ImageView imageView=new ImageView(GalleryActivity.this);//给ImageView设置宽和高Gallery.LayoutParams layoutParams=new Gallery.LayoutParams(600,500);//查看:Ctrl+PimageView.setLayoutParams(layoutParams);imageView.setImageResource(images[position]);return imageView;}}
}
二.ViewPager
知识概述
<1>引导页
适配器 PagerAdapter
滑动监听 addOnPageChangeListener
导航点 github开源框架:ViewPagerIndicator
属性:
setRadius:设置半径
setPageColor:点的背景颜色
setBackgroundColor:控件的背景颜色
setFillColor:设置点的背景颜色
setStrokeColor:设置点背景的边框颜色
进入主界面
<2>主界面框架
效果图
具体实现代码
layout
activity_view_pager.xml
<?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.zking.android09_widgetplus.ViewPagerActivity"><android.support.v4.view.ViewPagerandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/vp_view_page_image"></android.support.v4.view.ViewPager></LinearLayout>
Java
ViewPagerActivity.java
package com.zking.android09_widgetplus;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 ViewPager vp_view_page_image;private int images[]={R.drawable.s1,R.drawable.s2,R.drawable.s3,R.drawable.s4};//List<只要是View类型>,就可以左右滑动private List<View> views=new ArrayList<>();//定义一个集合@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_view_pager);vp_view_page_image = (ViewPager) findViewById(R.id.vp_view_page_image);for (int i = 0; i < images.length; i++) {ImageView iv=new ImageView(this);iv.setImageResource(images[i]);views.add(iv);}vp_view_page_image.setAdapter(new MyAdapter());}//自己的专属适配器class MyAdapter extends PagerAdapter{@Overridepublic int getCount() {return views.size();}//String:字符串,数据类型 TextView:控件(能写界面的)@Overridepublic boolean isViewFromObject(View view, Object object) {return view==object;}//Alt+Insert-->Override Methods-->第三个和第四个//类似GetView方法(添加)@Overridepublic Object instantiateItem(ViewGroup container, int position) {View v=views.get(position);container.addView(v);return v;}//销毁@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {//super.destroyItem(container, position, object);//写上这行代码,有点机型会报错View v=views.get(position);//销毁哪一个container.removeView(v);}}}