我已经使用手机Gap创建了一个Android应用程序。它运行正常。如何向我的应用程序添加预加载器图像。现在它在加载应用程序时显示白页。
非常感谢帮助, 谢谢, VKS。
答案 0 :(得分:18)
如果您的意思是预加载器图像有Splash屏幕,请参阅以下代码;
对于PhoneGap:
public class MyDefaultActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setIntegerProperty("splashscreen", R.drawable.splash); // Displays the splash screen for android
super.loadUrl("file:///android_asset/www/index.html",3000); // Second parameter is duration for delay of splash screen
}
}
对于Android原生应用
public class MySplashScreen extends Activity {
private CountDownTimer lTimer;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.splashscreen); // Contains only an LinearLayout with backround as image drawable
lTimer = new CountDownTimer(5000, 1000) {
public void onFinish() {
closeScreen();
}
@Override
public void onTick(long millisUntilFinished) {
// TODO Auto-generated method stub
}
}.start();
}
private void closeScreen() {
Intent lIntent = new Intent();
lIntent.setClass(this, MyLauncherActivity.class);
startActivity(lIntent);
finish();
}
}
确保名为splash.png
的文件显示为res/drawable-hdpi/splash.png
(RGBA)。
答案 1 :(得分:4)
您可以创建一个AsyncTask
实现,用于在后台线程中加载应用程序的数据时显示图像/进度指示器。
onPreExecute
中
您显示所选预加载器的方法
(image / ProgressDialog / etc)doInBackground
方法中你
开始加载必要的数据,
和onPostExecute
方法中你
删除/隐藏你的预加载器,所以
活动的理想布局将是
所示。答案 2 :(得分:0)
如果预加载器图像是指大图像的低分辨率版本,则可以使用带有两个ImageView的VewSwitcher:一个图像视图包含预加载器图像,而另一个图像视图包含完整图像(虽然它已装载)。最初,您可以使预加载的图像可见,但是当大位图完成加载时,您只需使用switcher.showNext()
来显示完整图像。
关于ViewSwitcher的一些进一步阅读(示例做了类似的事情):here