点击图像时,Android幻灯片和幻灯片更改

时间:2015-06-04 20:38:05

标签: android android-viewpager android-animation slideshow

我想创建一个图像和文本的幻灯片,以便在点击图像时显示下一张幻灯片(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) {

}
}

请查看代码并帮助我:)

0 个答案:

没有答案