Android 标题栏progressBar实例


如何改变Android程序的标题栏呢?

在程序的界面Activity的onCreate()函数中,setContentView(R.id.main)之前设定你的标题的样式。其中
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE)就是用户可以自己设定一个样式的标题栏。当 然requestWindowFeature()里面还有其他的样式可以设置,自己可以看下android源码里面Window类里面的参数。
接下来自己到res/layout下面创建一个layout。

java代码:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <RelativeLayout
  3. xmlns:android="http://schemas.android.com/apk/res/android"
  4. android:id="@+id/screen"
  5. android:layout_width="fill_parent"
  6. android:layout_height="fill_parent"
  7. android:orientation="vertical">

  8. <TextView
  9. android:id="@+id/left_text"
  10. android:gravity="center_vertical"
  11. style="?android:attr/windowTitleStyle"
  12. mce_style="?android:attr/windowTitleStyle"
  13. android:layout_width="wrap_content"
  14. android:layout_height="fill_parent"
  15. android:paddingLeft="5dip"
  16. android:layout_alignParentLeft="true" />

  17. <TextView
  18. android:id="@+id/right_text"
  19. android:gravity="center_vertical"
  20. style="?android:attr/windowTitleStyle"
  21. mce_style="?android:attr/windowTitleStyle"
  22. android:layout_width="wrap_content"
  23. android:layout_height="fill_parent" android:paddingRight="5dip"
  24. android:layout_alignParentRight="true"
  25. android:visibility="gone" />

  26. <LinearLayout
  27. android:id="@+id/loading_indicator"
  28. android:orientation="horizontal"
  29. android:gravity="center_vertical"
  30. android:paddingTop="2dip"
  31. android:layout_alignParentRight="true"
  32. android:layout_height="wrap_content"
  33. android:layout_width="wrap_content">

  34. <TextView
  35. android:id="@+id/loading_text"
  36. android:gravity="center_vertical"
  37. style="?android:attr/windowTitleStyle"
  38. mce_style="?android:attr/windowTitleStyle"
  39. android:layout_width="wrap_content"
  40. android:layout_height="wrap_content"
  41. android:paddingRight="5dip"
  42. android:layout_alignParentRight="true" />

  43. <ProgressBar
  44. android:id="@android:id/progress"
  45. style="?android:attr/progressBarStyleSmallTitle"
  46. mce_style="?android:attr/progressBarStyleSmallTitle"
  47. android:gravity="center_vertical"
  48. android:paddingRight="5dip"
  49. android:layout_width="wrap_content"
  50. android:layout_height="wrap_content" />
  51. </LinearLayout>

  52. </RelativeLayout>
复制代码
        然后在setContentView(R.id.main)之后通过getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_test_title)去取得这个样式。

       我这次是在标题栏的右边有个progressBar。用来Loading网页的,因此我一开始不想让progressBar显示出来,那可以用findViewById(R.id.loading_indicator).setVisibility(View.INVISIBLE)设定当前不显示。(onCreate()中的代码片段)

java代码:
  1. class MyWebViewClient extends WebViewClient {

  2. @Override
  3. public void onPageStarted(WebView view, String url, Bitmap favicon) {
  4. findViewById(R.id.loading_indicator).setVisibility(View.VISIBLE);
  5. super.onPageStarted(view, url, favicon);
  6. }

  7. @Override
  8. public void onPageFinished(WebView view, String url) {
  9. findViewById(R.id.loading_indicator).setVisibility(View.INVISIBLE);
  10. super.onPageFinished(view, url);
  11. }

  12. }

相关内容