我正在使用ViewPagerparallax类,(用于视差视图),我使用pager.setbackgroundAsset(....);
设置背景
一切正常......但是我有一个情况,我想要实现的是每当片段进入暂停状态并且每当它恢复时,背景应该改变,因此我改变了背景onResume方法,但似乎只有在我尝试在片段之间滑动时才能看到更改...
这是我的代码
public void onResume()
{
Activity_Fragments ab = (Activity_Fragments) this.getActivity();
ViewPagerParallax pager=ab.hi();
int arr[]={R.raw.a1,R.raw.a2,R.raw.a3,R.raw.a4,R.raw.a5,R.raw.a6,R.raw.a7,R.raw.a8,
R.raw.a9,R.raw.a10,R.raw.a11,R.raw.a12,R.raw.a13,R.raw.a14,R.raw.a15,R.raw.a16,
R.raw.a17,R.raw.a18,R.raw.a19,R.raw.a20,R.raw.a21,R.raw.a22,R.raw.a23,
R.raw.a24,R.raw.a25,R.raw.a26,R.raw.a27,R.raw.a28,R.raw.a29};
int x=(int)(Math.random() * ((28 ) + 1));
pager.setBackgroundAsset(arr[x]);
答案 0 :(得分:1)
一些笔记。
首先,我假设你正在使用它:https://github.com/MatthieuLJ/ViewPagerParallax/blob/master/src/com/matthieu/ViewPagerParallax.java
在查看来源时,您似乎正在做正确的事情。
我可以看到一些可能发生的事情
你可以尝试一些事情
对于第1点,如果您还没有,请使用您认为合适的号码拨打set_max_pages
。
第2点,ViewPager是否设置了宽度和高度的活动?
第3点,确认您的发电机正在工作。 (已经完成,逻辑工作完美)
int arr[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,
18,19,20,21,22,23,24,25,26,27,28,29};
for(int i = 0; i < 100; i++){
Log.d("TEST", String.valueOf(arr[(int)(Math.random() * ((28 ) + 1))]));
}
这会返回所需的输出,没问题。
第4点和第4点5,检查logcat,可能会说一些错误,标签应该说ViewPagerParallax
我会说第1点可能是它,如果你设置它已经没有了它将会绘制背景。
答案 1 :(得分:0)
我不确定setBackgroundAsset是如何工作的,但是尝试调用invalidate();在onResume()的末尾。这将确保您的onDraw()方法将被ASAP调用,并且将重新绘制新的背景。