[英]Android Home Screen effect
我想做類似“ andriod”主屏幕效果的操作。 當我單擊屏幕並移動時。 當前視圖將移動,下一個視圖也可以顯示。
現在,該代碼只能顯示當前視圖。
謝謝您的幫助
來源如下:
public class test 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;
}
case MotionEvent.ACTION_MOVE:
ViewFlipper vf = (ViewFlipper) findViewById(R.id.details);
final View currentView = vf.getCurrentView();
currentView.layout((int)(arg1.getX() - downXValue),
currentView.getTop(), currentView.getRight(),
currentView.getBottom());
/*may be do something in thest*/
break;
}
// if you return false, these actions will not be recorded
return true;
}
}
您可以使用Viewpager
。 托菲克·艾哈邁德(Tofeeq ahmad)說:
Viewpager是在視圖之間切換的最佳方法。 它提供了一種從左向右和從右向左滑動視圖的方法。 Viewpager提供了一種強大的方式來滑動任何視圖。
您必須先擴展PagerAdapter
,然后使用Viewpager
。您可以在Android,Java和其他移動技術的Guidance中查看代碼段和完整的源代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.