2016-02-05 96 views
-1

我在我的应用程序中制作了Splash Screen。我必须在我的启动画面中设置ProgressBar。但ProgressBar显示绿色,我必须设置白色使用代码但它工作后一段时间。首先它显示绿色然后它变成白色Android Splash Screen ProgressBar颜色不变

创建ProgressBar我已使用此https://github.com/rahatarmanahmed/CircularProgressView 任何帮助被赞赏。

Java代码:

public class SplashScreenActivity extends Activity { 

    // Set Duration of the Splash Screen 

    CircularProgressView progressView; 
    private static int SPLASH_TIME_OUT = 3000; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     // Remove the Title Bar 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 

     // Get the view from splash_screen.xml 
     setContentView(R.layout.splash_screen); 


     new Handler().postDelayed(new Runnable() { 


      @Override 
      public void run() { 

       progressView = (CircularProgressView) findViewById(R.id.progress_view); 
       progressView.setColor(Color.parseColor("#FFFFFF")); 



       finish(); 
       Intent myIntent = new Intent(SplashScreenActivity.this, 
         MainActivity.class); 
       startActivity(myIntent); 
      } 
     }, SPLASH_TIME_OUT); 


    } 
} 
+0

能否请你加上你的代码是如何以身作则向上?这将使得提供一些帮助变得更容易。看起来有一些线程问题。 – jaolstad

+0

你可以分享你的代码,并请突出显示它出错的地方。 –

+0

@ destination-data我已经添加了代码,并且以自己的方式让它不使用任何示例。 – Harshad

回答

0

更改代码的替代方案,将工作完全把进度intialization和的setColor属性之前的处理程序代码看代码后:

public class SplashScreenActivity extends Activity { 

    // Set Duration of the Splash Screen 

    CircularProgressView progressView; 
    private static int SPLASH_TIME_OUT = 3000; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     // Remove the Title Bar 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 

     // Get the view from splash_screen.xml 
     setContentView(R.layout.splash_screen); 

    progressView = (CircularProgressView) findViewById(R.id.progress_view); 
        progressView.setColor(Color.parseColor("#FFFFFF")); 

     new Handler().postDelayed(new Runnable() { 

      @Override 
      public void run() { 

       finish(); 
       Intent myIntent = new Intent(SplashScreenActivity.this, 
         MainActivity.class); 
       startActivity(myIntent); 
      } 
     }, SPLASH_TIME_OUT); 


    } 
} 
0

试试这个代码,它会工作。

new Handler().postDelayed(new Runnable() { 


      @Override 
      public void run() { 

       progressView = (CircularProgressView) findViewById(R.id.progress_view); 
       progressView.getIndeterminateDrawable().setColorFilter(getResources().getColor(R.color.accent_dark), 
         PorterDuff.Mode.SRC_IN); 



       finish(); 
       Intent myIntent = new Intent(SplashScreenActivity.this, 
         MainActivity.class); 
       startActivity(myIntent); 
      } 
     }, SPLASH_TIME_OUT); 
+0

使用此代码我有两个问题。 1.无法解析符号getIndeterminateDrawable 2. getColor已弃用。 – Harshad

+0

@Harshad您正在使用自定义视图?你使用的是,你可以很容易地得到这个代码的循环进度条。 <进度 风格= “机器人:ATTR/progressBarStyle” 的android:layout_width = “WRAP_CONTENT” 机器人:layout_height = “WRAP_CONTENT” 机器人:ID = “@ + ID/splash_progressBar”/> 再申请使用新方法的颜色(在弃用之后)。 – androidnoobdev

+0

我的ProgressBar可以在其他活动中正常工作,但不能在Splash Screen中工作我不知道什么是问题。我认为这是线程问题。和其他解决方案,所以它帮助我。 – Harshad