У меня есть около 20 изображений. Я создал кнопки для каждого изображения и одного ImageView. При нажатии кнопки соответствующее изображение будет установлено в ImageView с включенным масштабированием и перетаскиванием. Затем замените его, нажав другую кнопку, чтобы перейти к следующему / предыдущему изображению.
Теперь мне нужно удалить кнопки и заменить их, осуществив быстрый слайд по вертикали . Когда я делаю быстрый слайд снизу вверх, он переходит к следующему изображению . Затем быстро переместите сверху вниз, чтобы перейти к предыдущему изображению . Также отключите его, если они достигают первого или последнего изображения .
Я думаю о ListView ImageView для обработки изображений. Затем реализуйте функцию быстрого скольжения, поддерживая индекс текущего ImageView в списке.
Высоко ценится любое руководство в правильном направлении о том, как реализовать быструю слайд-страничку с помощью Android 2.1 .
UPDATES1
Я успешно использую слайдер ImageSwitcher вверх и вниз с помощью кнопки (Next, Prev). Моя следующая проблема заключается в том, как реализовать это с помощью быстрого перемещения для перемещения вперед и назад. Я добавлю текущие коды.
ПРИМЕЧАНИЕ: Класс TouchImageView поддерживает масштабирование и перетаскивание. При медленном скольжении изображение будет перетаскиваться в этом направлении, но когда я делаю быстрое скольжение вверх или вниз, мне хочется переместиться к следующему и предыдущему изображению соответственно.
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ImageSwitcher android:id="@+id/switcher1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_weight="0"
/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1">
<Button android:id="@+id/next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Next"/>
<Button android:id="@+id/previous"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Prev"/>
</LinearLayout>
</LinearLayout>
Активность: (Примечание: TouchImageView получено из RecipeBook060 Увеличение и перетаскивание Extended ImageView , идея слайд-изображений, полученная из Слайд-изображение )
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ImageSwitcher;
import android.widget.ViewSwitcher.ViewFactory;
public class ImageSwticherActivity extends Activity
implements ViewFactory {
Integer[] imageIDs = { R.drawable.image_one, R.drawable.image_two,
R.drawable.image_three };
private ImageSwitcher imageSwitcher;
private Button nextButton;
private Button previousButton;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final Animation in = AnimationUtils.loadAnimation(this,
android.R.anim.slide_in_left);
final Animation out = AnimationUtils.loadAnimation(this,
android.R.anim.slide_out_right);
imageSwitcher = (ImageSwitcher) findViewById(R.id.switcher1);
imageSwitcher.setFactory(this);
imageSwitcher.setInAnimation(in);
imageSwitcher.setOutAnimation(out);
imageSwitcher.setImageResource(imageIDs[0]);
nextButton = (Button) findViewById(R.id.next);
nextButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Animation out= AnimationUtils.loadAnimation(ImageSwticherActivity.this, R.anim.slide_out_bottom);
Animation in= AnimationUtils.loadAnimation(ImageSwticherActivity.this, R.anim.slide_in_top);
imageSwitcher.setInAnimation(in);
imageSwitcher.setOutAnimation(out);
imageSwitcher.setImageResource(imageIDs[1]);
}
});
previousButton = (Button) findViewById(R.id.previous);
previousButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Animation out= AnimationUtils.loadAnimation(ImageSwticherActivity.this, R.anim.slide_out_top);
Animation in= AnimationUtils.loadAnimation(ImageSwticherActivity.this, R.anim.slide_in_bottom);
imageSwitcher.setInAnimation(in);
imageSwitcher.setOutAnimation(out);
imageSwitcher.setImageResource(imageIDs[0]);
}
});
}
@Override
public View makeView() {
//ImageView imageView = new ImageView(ImageSwticherActivity.this);
TouchImageView imageView = new TouchImageView(ImageSwticherActivity.this);
imageView.setBackgroundColor(0xFF000000);
//imageView.setScaleType(ImageView.ScaleType.CENTER);
imageView.setLayoutParams(new ImageSwitcher.LayoutParams(
ImageSwitcher.LayoutParams.FILL_PARENT, ImageSwitcher.LayoutParams.FILL_PARENT));
return imageView;
}
}
slide_in_bottom.xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromYDelta="-50%p" android:toYDelta="0"
android:duration="@android:integer/config_mediumAnimTime"/>
<alpha android:fromAlpha="0.0" android:toAlpha="1.0"
android:duration="@android:integer/config_mediumAnimTime" />
</set>
slide_in_top.xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromYDelta="50%p" android:toYDelta="0"
android:duration="@android:integer/config_mediumAnimTime"/>
<alpha android:fromAlpha="0.0" android:toAlpha="1.0"
android:duration="@android:integer/config_mediumAnimTime" />
</set>
slide_out_bottom.xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromYDelta="0" android:toYDelta="-50%p"
android:duration="@android:integer/config_mediumAnimTime"/>
<alpha android:fromAlpha="1.0" android:toAlpha="0.0"
android:duration="@android:integer/config_mediumAnimTime" />
</set>
slide_out_top.xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromYDelta="0" android:toYDelta="50%p"
android:duration="@android:integer/config_mediumAnimTime"/>
<alpha android:fromAlpha="1.0" android:toAlpha="0.0"
android:duration="@android:integer/config_mediumAnimTime" />
</set>