0
我想模擬視圖尋呼機的動畫,改變背景顏色,但想法是有一個視圖(或更多),留在前面的背景在任何時候(即使切換它)。 任何建議將非常好聽。模擬Android ViewPager動畫與它前面的視圖
編輯:這是什麼我真的試圖實現一個例子: http://www.youtube.com/watch?v=mB7GmfMxLvY
我想模擬視圖尋呼機的動畫,改變背景顏色,但想法是有一個視圖(或更多),留在前面的背景在任何時候(即使切換它)。 任何建議將非常好聽。模擬Android ViewPager動畫與它前面的視圖
編輯:這是什麼我真的試圖實現一個例子: http://www.youtube.com/watch?v=mB7GmfMxLvY
有幾種方法如何可以做到這一點。您可以創建不同背景的視圖,然後使用動畫獲得所需的效果。但是,既然你提到了ViewPager,並且如果那是你需要的。一個更簡單的解決方案是使用Relative佈局,並在視圖頁面上覆蓋其他視圖。
到這裏看看:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.view.ViewPager
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/viewpager"
android:layout_alignParentRight="false"/>
<!-- other views go here -->
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:src="@drawable/ic_launcher"/>
</RelativeLayout>
然後分配的觀點與不同的背景顏色的觀點尋呼機。 (注:寫的代碼在較短的時間來解釋溶液)
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
colors = new ArrayList<Integer>();
colors.add(Color.RED);
colors.add(Color.BLACK);
colors.add(Color.BLUE);
colors.add(Color.GREEN);
colors.add(Color.YELLOW);
mViewPager = (ViewPager)findViewById(R.id.viewpager);
mPageAdapter = new MyPageAdapter();
mViewPager.setAdapter(mPageAdapter);
mPageAdapter.notifyDataSetChanged();
}
private MyPageAdapter mPageAdapter;
private ViewPager mViewPager;
private List<Integer> colors;
class MyPageAdapter extends PagerAdapter {
@Override
public int getCount() {
return colors.size();
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
RelativeLayout view = new RelativeLayout(getApplicationContext());
view.setBackgroundColor(colors.get(position));
((ViewPager) mViewPager).addView(view, 0);
return view;
}
@Override
public void destroyItem(ViewGroup container, int position, Object view) {
((ViewPager) mViewPager).removeView((RelativeLayout) view);
}
@Override
public boolean isViewFromObject(View view, Object o) {
return view == ((RelativeLayout) o);
}
}
}
所以這種方式就可以實現視圖尋呼機的所有屬性,而無需編寫任何額外的代碼(手勢滑動效果等))。
Thx很多,它按預期工作! – DoruAdryan