在下面的例子中,有一個帶有輸入字段和按鈕的佈局。用戶將輸入一個介於0到10之間的數字,並且鰭狀肢將從屏幕10開始動畫到輸入的數字。你可以循環根據用戶輸入的鰭狀肢動畫嗎?
如果我在onClick上註釋掉(int i = 10; .....; i - ){,則每次單擊該按鈕時屏幕都會滑動。如果我將屏幕中的for循環放入屏幕中,不會滑動每個屏幕。循環速度過快,動畫難以趕上。
是否有可能把它因此,如果您例如輸入2腳蹼會去:
翻轉10
滑蓋動畫出現
擋板9
滑蓋動畫出現
翻轉器8 .....
主要活動:
package com.jk.flippertest;
import com.jk.flippertest.R;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.ViewFlipper;
public class FlipperTestActivity extends Activity {
/** Called when the activity is first created. */
private Animation slideRightIn;
private Animation slideRightOut;
private ViewFlipper viewFlipper;
TextView loopNumber;
int loopValue;
Button goBtn;
ViewFlipper fSpace;
LayoutInflater inflater;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
loopNumber = (TextView)findViewById(R.id.editText1);
goBtn = (Button)findViewById(R.id.button1);
fSpace = (ViewFlipper)findViewById(R.id.viewFlipper1);
inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
for (int i=0;i<11;i++){
TextView tvi = new TextView(this);
tvi.setText("Flipper "+i);
tvi.setTextSize(50);
tvi.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
LinearLayout lli = new LinearLayout(this);
lli = new LinearLayout(this);
lli.setOrientation(LinearLayout.VERTICAL);
lli.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
lli.addView(tvi);
fSpace.addView(lli);
}
viewFlipper = (ViewFlipper)findViewById(R.id.viewFlipper1);
slideRightIn = AnimationUtils.loadAnimation(this, R.anim.slide_right_in);
slideRightOut = AnimationUtils.loadAnimation(this, R.anim.slide_right_out);
goBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Toast.makeText(getBaseContext(), "Value is "+loopNumber.getText(), Toast.LENGTH_LONG).show();
for(int i=10;i>=Integer.parseInt(loopNumber.getText().toString());i--){
viewFlipper.setInAnimation(slideRightIn);
viewFlipper.setOutAnimation(slideRightOut);
viewFlipper.showPrevious();
}
}
});
}
}
主要佈局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content" android:hint="Enter numb between 0 to 10.">
<requestFocus />
</EditText>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Go" />
<ViewFlipper
android:id="@+id/viewFlipper1"
android:layout_width="match_parent"
android:layout_height="fill_parent" >
</ViewFlipper>
</LinearLayout>
slide_right_in.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="-100%p" android:toXDelta="0" android:duration="800"/>
</set>
slide_right_out.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="0" android:toXDelta="100%p" android:duration="800"/>
</set>
你可以發佈slide_right_out.xml的代碼嗎? – joshhendo