我想创建一个图像和文本的幻灯片,以便在点击图像时显示下一张幻灯片(onClickSlideDown)。我已经完成了使用viewpager,但我必须用手指滑动来更改幻灯片。如何点击特定的图像/图标。 我的xml文件: slidescreenmain.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.view.ViewPager
android:id = "@+id/pager"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:id="@+id/slidedownimage"
android:layout_width="50dp"
android:layout_height="20dp"
android:layout_centerHorizontal="true"
android:clickable="true"
android:onClick="onClickSlideDown"
android:scaleType="fitXY"
android:src="@mipmap/slidedown" />
<ImageView
android:id="@+id/dektonlogoimage"
android:layout_width="150dp"
android:layout_height="50dp"
android:adjustViewBounds="true"
android:padding="15dp"
android:src="@mipmap/dektonlogowhite" />
<View
android:id="@+id/h_separator"
android:layout_width="fill_parent"
android:layout_height="1dp"
android:layout_below="@+id/dektonlogoimage"
android:background="@android:color/darker_gray"
android:visibility="visible" />
<View
android:id="@+id/v_separator"
android:layout_width="1dp"
android:layout_height="fill_parent"
android:layout_above="@+id/h_separator"
android:layout_toLeftOf="@+id/closebuttonimage"
android:background="@android:color/darker_gray"
android:visibility="visible" />
<ImageView
android:id="@+id/closebuttonimage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/MainText"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:clickable="true"
android:onClick="onClickCloseButton"
android:src="@mipmap/closebutton" />
<TextView
android:id="@+id/MainText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/slidedownimage"
android:layout_marginRight="10dp"
android:layout_toLeftOf="@+id/v_separator"
android:text="@string/main_right"
android:textColor="#ffffffff"
android:textSize="14sp" />
</RelativeLayout>
slidescreen_item.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="-500dp"
android:layout_marginTop="-100dp">
<ImageView
android:id="@+id/bgimage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#000000" />
<ImageView
android:id="@+id/whitebox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@mipmap/whitebox"
android:layout_centerHorizontal="true"
android:layout_marginTop="200dp"
android:layout_marginLeft="70dp"
android:layout_marginRight="70dp"/>
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/whitebox"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:src="#000000" />
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/icon"
android:layout_centerHorizontal="true"
android:textSize="12sp" />
<TextView
android:id="@+id/title_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/title"
android:layout_centerHorizontal="true"
android:layout_marginTop="3dp"
android:textSize="12sp" />
<TextView
android:id="@+id/description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:layout_below="@+id/title_2"
android:textSize="12sp" />
</RelativeLayout>
我的java文件:
slidescreen.java
package com.dekton.dektonapp;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
public class slidescreen extends ActionBarActivity {
//Declare variables
ViewPager viewPager;
PagerAdapter adapter;
int[] background;
int[] icon;
String[] title;
String[] title_2;
String[] description;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.slidescreenmain);
//Generate sample data
background = new int[]{R.drawable.bg1, R.drawable.bg2, R.drawable.bg3, R.drawable.bg4, R.drawable.bg5,
R.drawable.bg6, R.drawable.bg7, R.drawable.bg8, R.drawable.bg9, R.drawable.bg10, R.drawable.bg11, R.drawable.bg12};
icon = new int[]{R.mipmap.im1, R.mipmap.im2, R.mipmap.im3, R.mipmap.im4, R.mipmap.im5,
R.mipmap.im6, R.mipmap.im7, R.mipmap.im8, R.mipmap.im9, R.mipmap.im10, R.mipmap.im11, R.mipmap.im12};
title = new String[]{"ALTA RESISTENCIA A", "ALTA RESISTENCIA", "ALTAMENTE", "RESISTENCIA A", "MATERIAL", "ALTA RESISTENCIA",
"RESISTENCIA AL", "RESISTENCIA", "ESTABILIDAD", "ESTABILIDAD", "RESISTENCIA A", "NULA ABSORCIÓN"};
title_2 = new String[]{"LOS RAYOS UV", "AL FUEGO Y AL CALOR", "RESISTENTE AL RAYADO", "LAS MANCHAS", "INCOMBUSTIBLE", "A LA HIDRÓLISIS",
"HIELO Y DESHIELO", "MECÁNICA", "DIMENSIONAL", "DEL COLOR", "LA ABRASIÓN", "DEL AGUA"};
description = new String[]{"Dekton es altamente resistente a\n" + "los rayos ultravioleta (UV) y su color\n" +
"no degrada con el tiempo, lo que\n" + "hace que sea un material perfecto\n" + "tanto para interiores como para\n" +
"exteriores.",
"Dekton presenta una muy buena\n" + "resistencia a las altas temperaturas sin\n" + "que se vea afectada su estética ni su\n" +
"propiedades. Los utensilios calientes,\n" + "electrodomésticos, ollas y sartenes, se\n" + "pueden colocar directamente sobre la\n" +
"superficie sin peligro ni daño alguno.",
"Dekton es una superficie con alta\n" + "resistencia al rayado. No se raya\n" + "con los utensilios de uso doméstico.\n" +
"No obstante, recomendamos el uso\n" + "de tablas de corte para asi proteger\n" + "los utensilios domésticos.",
"Debido a su baja porosidad, la nueva\n" + "superficie Dekton, es una superficie\n" + "altamente resistente , tanto a las manchas\n" +
"ocasionales en el uso domestico como a\n" + "los agentes químicos. Incluso las manchas\n" + "más difíciles como las de vino, café, tinta y\n" +
"óxido se pueden limpiar fácilmente. Las\n" + "salpicaduras o gotas de productos de\n" + "limpieza cotidianos como lejía, limpia\n" +
"tuberías o desengrasantes para hornos no\n" + "producen daño alguno al material.",
"Text Text Text Text Text Text Text Text Text\n" + "Text Text Text Text Text Text Text Text Text\n" +
"Text Text Text Text Text Text Text Text Text\n" + "Text Text Text Text Text Text Text Text Text\n" +
"Text Text Text Text Text Text Text Text Text\n" + "Text Text Text Text Text Text Text Text Text\n" +
"Text Text Text Text Text Text Text",
"Text Text Text Text Text Text Text Text\n" + "Text Text Text Text Text Text Text Text\n" +
"Text Text Text Text Text Text Text Text\n" + "Text Text Text Text Text Text Text Text\n" +
"Text Text Text Text Text Text Text Text\n" + "Text Text Text Text Text Text Text",
"El bajo coeficiente de expansión térmico\n" + "de Dekton hace que sea resistente al\n" +
"choque térmico, del paso del calor al frío\n" + "extremo. Su resistencia natural al hielo y al\n" +
"deshielo hacen que sea un material\n" + "perfecto incluso en los entornos más fríos\n" + "y extremos.",
"Con una resistencia a la flexión 3 veces\n" + "mayor de la que ofrece el granito, Dekton\n" +
"puede instalarse en espesores mas finos,\n" + "permitiendo un voladizo sin soporte de\n" +
"hasta 30cm en encimeras, islas y barras\n" + "de bar (dependiendo del espesor).",
"Dekton es un material donde se controla\n" + "de forma exhaustiva tanto la dimensión\n" +
"como el grosor en toda la tabla, lo cual\n" + "reduce la necesidad de correcciones sobre\n" +
"la superficie y facilita asi su instalación.",
"El proceso de fabricación de Dekton nos\n" + "permite controlar la pigmentación y la\n" +
"estética del material, dotándolo de una\n" + "mejor consistencia del color en todas las\n" +
"tablas. El resultado es un producto que no\n" + "decolora con el tiempo. Una vez instalada,\n" +
"la superficie mantendrá su aspecto\n" + "durante toda la vida útil del producto.",
"Dekton es incluso más resistente a la\n" + "abrasión que el granito, lo cual lo convierte\n" +
"en la superficie ideal para aplicaciones\n" + "comerciales y áreas de alto tránsito como\n" +
"solerías y fachadas. Mientras que otras\n" + "superficies muestran desgaste con el paso\n" +
"del tiempo, el acabado de Dekton\n" + "perdurará durante toda la vida del\n" +
"producto y no necesitará ser reemplazado\n" + "o retocado en ningún momento.",
"Dekton es un material no poroso y no\n" + "necesita ser sellado en ningún momento.\n" +
"Por naturaleza, es capaz del repeler\n" + "líquidos y gases para que no penetren en\n" +
"la superficie. De este modo, el\n" + "mantenimiento de la superficie es mínimo\n" +
"y más fácil de limpiar."};
getSupportActionBar().hide();
}
public void onClickSlideDown(View view){
// Locate the ViewPager in viewpager_main.xml
viewPager = (ViewPager) findViewById(R.id.pager);
// Pass results to ViewPagerAdapter Class
adapter = new ViewPagerAdapter(slidescreen.this, background, icon, title, title_2,description);
// Binds the Adapter to the ViewPager
viewPager.setAdapter(adapter);
}
public void onClickCloseButton(View view){
Intent i = new Intent(this,glass_3.class);
startActivity(i);
}
}
ViewPagerAdapter.java
package com.dekton.dektonapp;
import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class ViewPagerAdapter extends PagerAdapter implements Animation.AnimationListener{
//Declare variables
Context context;
int[] background;
int[] icon;
String[] title;
String[] title_2;
String[] description;
LayoutInflater inflater;
public ViewPagerAdapter(Context context, int[] background, int[] icon, String[] title, String[] title_2, String[] description) {
this.context = context;
this.background = background;
this.icon = icon;
this.title = title;
this.title_2 = title_2;
this.description = description;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((RelativeLayout)object);
}
@Override
public int getCount() {
return background.length;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
//Declare variables
ImageView bgimage,iconimage;
TextView titletext,title_2text,descriptiontext;
Animation translate, slide;
inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View itemView = inflater.inflate(R.layout.slidescreen_item,container,false);
//Locate textviews in slidescreen_item.xml
titletext = (TextView)itemView.findViewById(R.id.title);
title_2text = (TextView)itemView.findViewById(R.id.title_2);
descriptiontext = (TextView)itemView.findViewById(R.id.description);
//Capture position and set to textviews
titletext.setText(title[position]);
title_2text.setText(title_2[position]);
descriptiontext.setText(description[position]);
//Locate imageview in slidescreen_item.xml
bgimage=(ImageView)itemView.findViewById(R.id.bgimage);
iconimage =(ImageView)itemView.findViewById(R.id.icon);
//Capture position and set to the Imageview
bgimage.setBackgroundResource(background[position]);
iconimage.setImageResource(icon[position]);
//Apply animations
translate = AnimationUtils.loadAnimation(this.context, R.anim.ztubg);
translate.setAnimationListener(this);
bgimage.startAnimation(translate);
slide = AnimationUtils.loadAnimation(this.context, R.anim.whiteboxanim);
slide.setAnimationListener(this);
whitebox.startAnimation(slide);
iconimage.startAnimation(slide);
titletext.startAnimation(slide);
title_2text.startAnimation(slide);
descriptiontext.startAnimation(slide);
((ViewPager)container).addView((RelativeLayout)object);
return itemView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
//Remove slidescreen_item.xml from viewpager
((ViewPager)container).removeView((RelativeLayout) object);
}
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
}
请查看代码并帮助我:)