ProgressBar对话框没有边框

时间:2010-10-05 12:13:03

标签: android progress-bar android-progressbar

我在Android中显示ProgressBar,如下所示:

alt text

但进度条周围有白色边框。如果我不想显示任何边框怎么办?

即,只有进度条圆圈和文本应显示在进度条对话框中。

如何显示进度条,如下所示? (如何将进度对话框显示为在下图中搜索:)

alt text

更新 我没有找到解决方案,但我认为应该有一些技巧以这种方式显示进度条对话框。我的意思是说应该有一种方法可以在styles.xml中扩展一些样式。请任何人专注于这个问题,并帮助我显示这样的对话。

2 个答案:

答案 0 :(得分:2)

经过一些实验后,我得到了以下内容:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="my_style" parent="@android:style/Theme.Dialog" >
        <item name="android:windowBackground">@null</item>
    </style>
</resources>

如果我将此主题用作Activity的样式,我就不会使用该框架。 如果你在Dialog构造函数中使用它:对话框(上下文,主题)你没有框架。

答案 1 :(得分:1)

你还需要这个想法吗?我在我的应用程序中实现了相同的功能,但不是作为对话框,我有两个相互重叠的布局。然后,我通过设置可见性.setVisibility()在两个布局之间切换。至于实际的进度条本身,我用这个:

编辑:这是我的整个XML文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:background="@drawable/background"> 
     <RelativeLayout android:layout_width="wrap_content" 
    android:layout_height="wrap_content" android:id="@+id/search_header" android:background="@drawable/header">
           <!-- Some things I need for the header (title, etc) -->
     </RelativeLayout>  
    <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" 
     android:id="@+id/spinner_layout" android:layout_below="@+id/search_header" 
     android:layout_centerHorizontal="true" android:layout_centerVertical="true">
     <ProgressBar android:id="@+id/title_progress_bar"
   style="?android:attr/progressBarStyleSmallTitle"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_alignParentRight="true"
   android:layout_centerVertical="true"
   android:visibility="visible"
   android:indeterminateOnly="true"/>
  <TextView android:layout_width="wrap_content" 
   android:layout_height="wrap_content" 
   android:id="@+id/loading_label" android:text="Loading..." 
   android:layout_gravity="center_vertical" android:layout_marginLeft="5dip">
  </TextView>
 </LinearLayout>
 <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" 
  android:layout_below="@+id/search_header" android:id="@+id/list_contents">
  <!-- Stuff you want to show after returning from the AsyncTask -->
 </RelativeLayout>    
</RelativeLayout>

我对Activity AsyncTask使用此布局,因此onPreExecute(),我执行以下操作:

@Override
protected void onPreExecute(){
 findViewById(R.id.list_contents).setVisibility(View.GONE);
 findViewById(R.id.spinner_layout).setVisibility(View.VISIBLE);
}

然后做我必须做的事情,onPostExecute()我有:

@Override
protected void onPostExecute(Cursor cursor){
 findViewById(R.id.list_contents).setVisibility(View.VISIBLE);
 findViewById(R.id.spinner_layout).setVisibility(View.GONE);
}