如何防止ViewFlipper循环播放
||
我正在开发一个使用自定义
OnTouch
实现的ViewFlipper
的应用程序。在ѭ0中,我有大约20张图像供用户浏览。效果很好,但是如果我在该系列的第20张图片中并翻转屏幕,它将返回到第一张图片。
我想防止ѭ0循环回到第一张图像。相反,它应该仅停留在最后一张图像上。
这是我的代码:
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.animation.AnimationUtils;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.Spinner;
import android.widget.ViewFlipper;
public class Activity1 extends Activity implements OnTouchListener{
float downXValue;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Set main.XML as the layout for this Activity
setContentView(R.layout.main);
// Add these two lines
LinearLayout layMain = (LinearLayout) findViewById(R.id.layout_main);
layMain.setOnTouchListener((OnTouchListener) this);
// Add a few countries to the spinner
Spinner spinnerCountries = (Spinner) findViewById(R.id.spinner_country);
ArrayAdapter countryArrayAdapter = new ArrayAdapter(this,
android.R.layout.simple_spinner_dropdown_item,
new String[] { \"Canada\", \"USA\" });
spinnerCountries.setAdapter(countryArrayAdapter);
}
public boolean onTouch(View arg0, MotionEvent arg1) {
// Get the action that was done on this touch event
switch (arg1.getAction())
{
case MotionEvent.ACTION_DOWN:
{
// store the X value when the user\'s finger was pressed down
downXValue = arg1.getX();
break;
}
case MotionEvent.ACTION_UP:
{
// Get the X value when the user released his/her finger
float currentX = arg1.getX();
// going backwards: pushing stuff to the right
if (downXValue < currentX)
{
// Get a reference to the ViewFlipper
ViewFlipper vf = (ViewFlipper) findViewById(R.id.details);
// Set the animation
vf.setAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_out));
// Flip!
vf.showPrevious();
}
// going forwards: pushing stuff to the left
if (downXValue > currentX)
{
// Get a reference to the ViewFlipper
ViewFlipper vf = (ViewFlipper) findViewById(R.id.details);
// Set the animation
vf.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_in));
// Flip!
vf.showNext();
}
break;
}
}
// if you return false, these actions will not be recorded
return true;
}
}
和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\"
android:id=\"@+id/layout_main\"
>
<ViewFlipper android:id=\"@+id/details\"
android:layout_width=\"fill_parent\"
android:layout_height=\"fill_parent\">
<LinearLayout
android:orientation=\"vertical\"
android:layout_width=\"fill_parent\"
android:layout_height=\"fill_parent\"
>
<ImageView android:id=\"@+id/ImageView01\" android:background=\"@drawable/two\"
android:layout_x=\"1dip\" android:layout_y=\"1dip\"
android:layout_height=\"fill_parent\" android:layout_width=\"fill_parent\"></ImageView>
</LinearLayout>
<LinearLayout
android:orientation=\"vertical\"
android:layout_width=\"fill_parent\"
android:layout_height=\"fill_parent\"
>
<ImageView android:id=\"@+id/ImageView01\" android:background=\"@drawable/three\"
android:layout_x=\"1dip\" android:layout_y=\"1dip\"
android:layout_height=\"fill_parent\" android:layout_width=\"fill_parent\"></ImageView>
</LinearLayout>
<LinearLayout
android:orientation=\"vertical\"
android:layout_width=\"fill_parent\"
android:layout_height=\"fill_parent\"
>
<ImageView android:id=\"@+id/ImageView01\" android:background=\"@drawable/four\"
android:layout_x=\"1dip\" android:layout_y=\"1dip\"
android:layout_height=\"fill_parent\" android:layout_width=\"fill_parent\"></ImageView>
</LinearLayout>
<LinearLayout
android:orientation=\"vertical\"
android:layout_width=\"fill_parent\"
android:layout_height=\"fill_parent\"
>
<ImageView android:id=\"@+id/ImageView01\" android:background=\"@drawable/five\"
android:layout_x=\"1dip\" android:layout_y=\"1dip\"
android:layout_height=\"fill_parent\" android:layout_width=\"fill_parent\"></ImageView>
</LinearLayout>
<LinearLayout
android:orientation=\"vertical\"
android:layout_width=\"fill_parent\"
android:layout_height=\"fill_parent\"
>
<ImageView android:id=\"@+id/ImageView01\" android:background=\"@drawable/six\"
android:layout_x=\"1dip\" android:layout_y=\"1dip\"
android:layout_height=\"fill_parent\" android:layout_width=\"fill_parent\"></ImageView>
</LinearLayout>
<LinearLayout
android:orientation=\"vertical\"
android:layout_width=\"fill_parent\"
android:layout_height=\"fill_parent\"
>
<ImageView android:id=\"@+id/ImageView01\" android:background=\"@drawable/seven\"
android:layout_x=\"1dip\" android:layout_y=\"1dip\"
android:layout_height=\"fill_parent\" android:layout_width=\"fill_parent\"></ImageView>
</LinearLayout>
<LinearLayout
android:orientation=\"vertical\"
android:layout_width=\"fill_parent\"
android:layout_height=\"fill_parent\"
>
<ImageView android:id=\"@+id/ImageView01\" android:background=\"@drawable/eight\"
android:layout_x=\"1dip\" android:layout_y=\"1dip\"
android:layout_height=\"fill_parent\" android:layout_width=\"fill_parent\"></ImageView>
</LinearLayout>
<ViewFlipper>
</LinearLayout>
没有找到相关结果
已邀请:
3 个回复
臀博
。
奥李
氏脑