我正在使用蓝牙设备阅读二维码,并且每次找到模拟一个"输入"每当我检测到Enter键运行时显示ProgressBar。我喜欢做的是将深色背景透明,就像发布对话框或其他内容时一样。我还没有找到一种方法来进行进度条。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layoutLectorBluetooth"
android:background="@android:color/transparent"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<EditText
android:id="@+id/lectura"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/background_edittext"
android:inputType="textFilter|textMultiLine"
android:cursorVisible="false"
android:singleLine="true"
android:lines="1"
android:scrollHorizontally="true"
android:layout_marginTop="148dp" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="300dp"
android:layout_height="300dp"
android:layout_alignParentLeft="true"
android:src="@drawable/scan_trans" />
<TextView
android:id="@+id/textoEjemplo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/imageView2"
android:layout_centerHorizontal="true"
android:layout_marginTop="26dp"
android:text="Escanea el E-ticket para validarlo."
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/txtValidando"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textoEjemplo"
android:layout_centerHorizontal="true"
android:layout_marginTop="30dp"
android:text=""
android:visibility="gone"
android:textAppearance="?android:attr/textAppearanceSmall" />
<ProgressBar
android:id="@+id/loader_prueba"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textoEjemplo"
android:layout_centerHorizontal="true"
android:visibility="gone"
android:indeterminate="true" />
</RelativeLayout>
onCreate Activity
lectura = (EditText)findViewById(R.id.lectura);
lectura.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View view, int keyCode, KeyEvent keyevent) {
//THIS!
findViewById(R.id.loader_prueba).setVisibility(View.VISIBLE);
实施例
修改
答案 0 :(得分:1)
您的方法有两个问题:
@android:color/transparent
属性实际上是完全透明的,因为根本没有颜色。你可能想要的是一种略微不透明的黑色android:background
应用于ProgressBar
,它实际上无法覆盖整个窗口,相反,您必须添加一个同时覆盖整个窗口的新View
高度和宽度设置为match_parent
编辑:根据您现在发布的完整布局,我会添加以下内容(在RelativeLayout
内):
<RelativeLayout> <!-- that's the one you already have -->
<View
android:id="@+id/background_dim"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:background="#42000000"
android:visibility="gone" />
</RelativeLayout>
然后,您还需要在显示View
时将此ProgressBar
设置为可见:
findViewById(R.id.background_dim).setVisibility(View.VISIBLE);