我想创建自定义进度小部件,如图所示。经过一番研究我发现:
我的问题是:我是否使用正确的方法来创建和实现这些小部件?或者您认为任何更好的建议或教程可能会帮助我创建这些,特别是“水指示器”和自定义 Android 本机进度条。
谢谢。
我必须在设备上下载一些图像和视频,并且我喜欢通过在确定模式下覆盖一个圆形进度条来跟踪进度。
问题是,无论如何,ProgressBar 仍然是不确定的。
有没有办法让它循环并处于确定模式?
布局
<ProgressBar
android:layout_width="40dp"
android:layout_height="40dp"
android:progressTint="@color/colorPrimary"
android:indeterminate="false"
android:max="100"
android:layout_gravity="center"
android:id="@+id/message_media_preview_progress"
android:visibility="gone"
/>
Run Code Online (Sandbox Code Playgroud)
代码
final ProgressBar progressBar = (ProgressBar) mView.findViewById(R.id.message_media_preview_progress);
progressBar.setVisibility(View.VISIBLE);
progressBar.setProgress(0);
storageController.downloadMedia(context, message.getVideoFile(),
new ProgressListener<Integer>() {
@Override
public void onResult(Integer result) {
progressBar.setProgress(result);
}
},
new ResultListener<Boolean>() {
@Override
public void onResult(Boolean result) {
if(result) {
progressBar.setVisibility(View.GONE);
setMediaClickListener(message);
}else{
Toast.makeText(context,"Error downloading file",Toast.LENGTH_SHORT).show();
}
}
});
Run Code Online (Sandbox Code Playgroud) android progress-indicator android-progressbar material-design
我正在使用此代码Progressbar根据我的需要进行显示:
public class DelayedProgressDialog extends DialogFragment
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setCancelable(false);
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState)
{
ProgressDialog dialog = new ProgressDialog(getActivity());
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
dialog.setTitle(null);
dialog.setContentView(R.layout._task);
dialog.setIndeterminate(false);
return dialog;
}
}
Run Code Online (Sandbox Code Playgroud)
xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ProgressBar
style="?android:attr/progressBarStyleLarge"
android:layout_width="@dimen/_100sdp"
android:layout_height="@dimen/_100sdp"
android:id="@+id/progressBar"
android:layout_centerInParent="true"
android:indeterminateTint="@android:color/white"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
现在的问题是,当我调用这个时,我的自定义进度条没有显示在这个片段中:在没有标题的左侧显示正常进度条,我想在中间显示。如果我删除了 setContentview 然后没有得到任何效果,这意味着我的自定义视图没有显示在这个里面,我怎么能在这个里面显示我的视图。
android progressdialog android-progressbar android-dialogfragment
我需要水平放置 4 个圆形进度条,如下所示:
所以我决定使用新的材料组件循环进度指示器(https://material.io/components/progress-indicators/android)。我在约束布局中将这 4 个进度条链接在一起,但它们不缩放。看起来他们仍然拥有默认的 24dp 尺寸。例如,即使我尝试将宽度和高度硬编码为 200dp,输出仍然是小进度条。
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/progressBarCalories"
style="@style/ProgressBarCircular"
android:layout_marginTop="32dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="6dp"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintHorizontal_chainStyle="spread"
app:layout_constraintTop_toBottomOf="@id/wrapperCookingTime"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/progressBarProtein"
tools:progress="75"/>
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/progressBarProtein"
style="@style/ProgressBarCircular"
android:layout_marginTop="32dp"
android:layout_marginStart="6dp"
android:layout_marginEnd="6dp"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintHorizontal_chainStyle="spread"
app:layout_constraintTop_toBottomOf="@id/wrapperCookingTime"
app:layout_constraintStart_toEndOf="@id/progressBarCalories"
app:layout_constraintEnd_toStartOf="@id/progressBarCarbs"
tools:progress="75"/>
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/progressBarCarbs"
style="@style/ProgressBarCircular"
android:layout_marginTop="32dp"
android:layout_marginStart="6dp"
android:layout_marginEnd="6dp"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintHorizontal_chainStyle="spread"
app:layout_constraintTop_toBottomOf="@id/wrapperCookingTime"
app:layout_constraintStart_toEndOf="@id/progressBarProtein"
app:layout_constraintEnd_toStartOf="@id/progressBarFat"
tools:progress="75"/>
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/progressBarFat"
style="@style/ProgressBarCircular"
android:layout_marginTop="32dp"
android:layout_marginStart="6dp"
android:layout_marginEnd="16dp"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintHorizontal_chainStyle="spread"
app:layout_constraintTop_toBottomOf="@id/wrapperCookingTime"
app:layout_constraintStart_toEndOf="@id/progressBarCarbs"
app:layout_constraintEnd_toEndOf="parent"
tools:progress="75"/>
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/progressBar"
style="@style/ProgressBarCircular"
android:layout_marginTop="32dp"
app:layout_constraintWidth_min="200dp"
android:minWidth="200dp"
android:layout_width="200dp"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/progressBarFat"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
tools:progress="75"/>
Run Code Online (Sandbox Code Playgroud)
android android-progressbar kotlin progress-bar material-design
我正在尝试使用 jetpack compose 设计一个显示多个进度的进度条,但我没有找到任何库或帮助材料。我只能设计一个进度条,但我需要设计像
。
android android-progressbar progress-bar android-jetpack-compose
我使用HTTP GET/POST从Web获取XML数据.现在我已经以简单的方式完成了它(即没有威胁).
根据以下链接,我尝试使用带有线程的进度条对话框实现它 http://www.ceveni.com/2009/09/sample-progress-bar-dialog-in-android.html
但是我怎么知道从网上获取XML的结束时间(即什么应该是睡眠时间以及何时关闭进度条对话框)
让我更清楚一下我的问题=>在活动中,当用户点击"获取数据"按钮时,应出现"进度条"对话框,只有当提取成功完成时它才会消失.
我认为这可以通过" AsyncTask " 完成,但不知道如何使用该概念来解决这个问题.
那我该怎么办?
我有一个XML文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ProgressBar
android:id="@+id/progressbar"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
android:visibility="visible" />
<WebView
android:id="@+id/web_engine"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:visibility="gone" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
而我要的ProgressBar是Large风格,并在屏幕的中间垂直和水平居中......当我设置layout_width和height到fill_parent,它增加了实际负荷微调到整个屏幕的大小...我怎样才能让布局适合整个屏幕并居中实际加载图标?
我正在努力改进我的应用程序的用户界面.在我正在使用的设计中,我有一个TextView,它将在某个时间充当进度条.ruslt应如下所示:

问题是文本的一部分会在进度发生变化时改变颜色
我在android中查看了spannablestring,如果我能找到进度所涵盖的字母,它会起作用(但我不认为这很容易/准确)
我现在计划的是使用以下内容:
有更好的方法吗?
user-interface animation android android-layout android-progressbar
我有一个循环ProgressBar,我想要在这个圆形栏内,以百分比写出进展(如60%,或70%..)
我怎么能在圆形内做到这一点ProgressBar?
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ProgressBar
android:id="@+id/progressBars"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_centerInParent="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="20dp"
android:indeterminate="false"
android:indeterminateDrawable="@drawable/progress_bar"
android:max="100" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud) 如何在PreferenceFragment中添加进度条?我有一些异步任务正在运行,它将在完成时显示我的偏好中的一些值.因此,在进行后台处理时,我计划在中心只显示一个进度条.任务完成后,我计划显示我的所有偏好.
这是我到目前为止所拥有的.
PreferenceFragment
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.pref_account);
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
new AsyncTask<Void,Void,Void>() {
String firstName, lastName, email;
@Override
protected void doInBackground() {
// Doing something here to fetch values
}
@Override
protected void onPostExecute() {
findPreference("first_name").setSummary(firstName);
findPreference("last_name").setSummary(lastName);
findPreference("email").setSummary(email);
}
}
}
Run Code Online (Sandbox Code Playgroud)
pref_account.xml
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<Preference android:key="first_name"
android:title="@string/prompt_first_name"
android:summary="" />
<Preference android:key="last_name"
android:title="@string/prompt_last_name"
android:summary="" />
<Preference android:key="email"
android:title="@string/prompt_email"
android:summary=""
android:inputType="textEmailAddress" />
<Preference android:key="sign_out"
android:title="@string/action_sign_out" />
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)
我的问题是,因为这是一个PreferenceFragment并且我没有覆盖onCreateView的方法,我应该在哪里以及如何添加进度条?