2014-11-21 4 views
0

У меня есть 30 изображений в моем проекте, и я хочу отобразить 10 из них в одном представлении изображения, используя следующую и предыдущую кнопку (например, слайд-шоу), как это сделать? благодаря!показать следующее или предыдущее изображение onClick Android

previousButton = (Button) findViewById(R.id.backButton); 
    previousButton.setOnClickListener(this); 

    nextButton = (Button) findViewById(R.id.nextButton); 
    nextButton.setOnClickListener(this); 

set image in onclick method 

@Override 
public void onClick(View view) { 
// TODO Auto-generated method stub 
if (view == previousButton) { 
     --positionOfSelectedImage; 
     // set background image of 
    } else if (view == nextButton) { 
     ++positionOfSelectedImage; 
    } 

imageToBeSet.setImageURI(Uri.parse(absolutepathOfImage)); 
} 
+0

очистить свой вопрос первым .... –

+0

http://www.androidhive.info/2013/09/android-fullscreen-image-slider-with-swipe-and-pinch-zoom-gestures/ –

ответ

2

Там есть гораздо более простой способ сделать это.

Попробуйте этот код:

package com.example.jre; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.ImageView; 

public class MainActivity extends Activity implements View.OnClickListener { 

    Button btprevious, btnext; 
    ImageView myImage; 
    public int i = 0; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 

btprevious = (Button) findViewById(R.id.button1); 
btnext = (Button) findViewById(R.id.button2); 
myImage = (ImageView) findViewById(R.id.myImage); 

btprevious.setOnClickListener(this); 
btnext.setOnClickListener(this); 

} 

@Override 
public void onClick(View v) { 

switch (v.getId()){ 
case R.id.button1: 
i++; 

if(i==2) // switch to 11 because you got 10 images 
{ 
    i=1; // switch to 10, same reason 
} 

changeImage(); 
break; 

case R.id.button2: 
i--; 

if(i==-1) 
{ 
    i=0; // you can leave it this way or improve it later 
} 

changeImage(); 
break; 
} 
} 

public void changeImage() 
{ 
    myImage = (ImageView) findViewById(R.id.myImage); 

switch(i) 
{ 

case 0: 
myImage.setImageResource(R.drawable.firstimage); 
break; 

case 1: 
myImage.setImageResource(R.drawable.secondimage); 
break; 
// and then it goes further 
} 
} 

} 

И в файле XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.example.jre.MainActivity" > 

    <ImageView 
     android:id="@+id/myImage" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="86dp" 
     android:src="@drawable/ic_launcher" /> 

    <Button 
     android:id="@+id/button2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/button1" 
     android:layout_alignBottom="@+id/button1" 
     android:layout_toRightOf="@+id/myImage" 
     android:text="Next" /> 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/myImage" 
     android:layout_marginTop="32dp" 
     android:layout_toLeftOf="@+id/myImage" 
     android:text="Previous" /> 

</RelativeLayout> 

Это должно сделать работу!

+0

пригласите меня в чат –

+0

Пожалуйста, присоединяйтесь: http://chat.stackoverflow.com/rooms/65359/imagechange – Machado

+0

привет, друг, я задал еще один простой вопрос здесь http://stackoverflow.com/questions/27073636/give-stroke-to-text-view-text-android-hack/27074129 # 27074129 Я был бы рад, если вы потратите некоторое время и ответите на него. благодаря! –

0

определить свой адрес изображения (например: R.drawable.xxx) в List, а затем:

List <String> imagePath = new ArrayList<String>(); 
imagePath.add("image1Path"); 
imagePath.add("image2Path"); 
... 
imagePath.add("image30Path"); 
previousButton = (Button) findViewById(R.id.backButton); 
previousButton.setOnClickListener(this); 

nextButton = (Button) findViewById(R.id.nextButton); 
nextButton.setOnClickListener(this); 
myImageView = (ImageView) findViewById(R.id.imageView); 

int index = 0; 
//show first image in list 
myImageView.setImageBitmap(BitmapFactory.decodeFile(imagePath.get(0))); 


@Override 
public void onClick(View view) { 
// TODO Auto-generated method stub 
if (view.getId() == R.id.backButton) { 
     --index; 
     // set background image of 
    } else if (view.getId() == R.id.nextButton) { 
     ++index; 
    } 

myImageView.setImageBitmap(BitmapFactory.decodeFile(imagePath.get(index))); 
} 
+0

см. Мой обновленный ответ! –

+0

, пожалуйста, пригласите меня в чат –

Смежные вопросы