gpt4 book ai didi

安卓 : Progress bar not shown even after setting visible.

转载 作者:搜寻专家 更新时间:2023-11-01 08:39:41 24 4
gpt4 key购买 nike

我正在开发一个 Android 项目,当用户上传图片时,我想显示一个进度条。但是,即使在设置了 show 进度条之后,它仍然无法正常工作。我做错了什么?

代码:

 private ProgressBar spinner;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.add_restaurant_images);

spinner=(ProgressBar)findViewById(R.id.progressBar);
spinner.setVisibility(View.GONE);
// Rest of the non-relevant to problem code
}

private void uploadImage(boolean profilePhoto) {
spinner.setVisibility(View.VISIBLE);
if (!(reducedSizeBitmap == null)) {
reducedSizeBitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
this.restaurantService.addRestaurantImage(byteArray, profilePhoto);
}
spinner.setVisibility(View.GONE);

}

XML 文件:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/restaurant_drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="top|center"
android:orientation="vertical">


<ImageView
android:id="@+id/userPhotoImageView"
android:layout_width="match_parent"
android:layout_height="436dp"
/>

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">

<internetlegion.com.restaurantlunchify.Templates.MaterialRippleLayout
style="@style/RippleStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_marginTop="54dp"
android:layout_marginRight="20dp"
android:layout_marginEnd="20dp"
app:rippleColor="@color/main_color_grey_400">

<internetlegion.com.restaurantlunchify.Templates.RobotoTextView
android:id="@+id/uploadUserImageButton"
style="@style/ButtonStyle.RaisedEmpty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/main_color_900"
android:minWidth="112dp"
android:layout_marginRight="20dp"
android:layout_marginEnd="20dp"
android:text="Upload"
android:textColor="#fff" />
</internetlegion.com.restaurantlunchify.Templates.MaterialRippleLayout>

<CheckBox
android:layout_width="80dp"
android:layout_height="wrap_content"
android:layout_marginTop="0dp"
android:layout_marginRight="0dp"
android:layout_marginEnd="0dp"
android:layout_gravity="center_horizontal"
android:text="Default"
android:id="@+id/profilePhotoCheckBox"
android:checked="false" />

<internetlegion.com.restaurantlunchify.Templates.MaterialRippleLayout
style="@style/RippleStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_marginTop="54dp"
app:rippleColor="@color/main_color_grey_400">


<internetlegion.com.restaurantlunchify.Templates.RobotoTextView
android:id="@+id/userPhotoButtonSelect"
style="@style/ButtonStyle.RaisedEmpty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/main_color_900"
android:minWidth="112dp"
android:text="Capture"
android:textColor="#fff" />
</internetlegion.com.restaurantlunchify.Templates.MaterialRippleLayout>


</LinearLayout>



</LinearLayout>

<ProgressBar
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/progressBar"
android:progressDrawable="@drawable/circular_progress_bar"
android:layout_below="@+id/button"
android:layout_alignRight="@+id/textView"
android:layout_alignEnd="@+id/textView"
android:layout_alignLeft="@+id/textview"
android:layout_alignStart="@+id/textview"
android:layout_alignParentBottom="true" />


<ListView
android:id="@+id/restaurant_list_slidermenu"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:dividerHeight="1dp" />

</android.support.v4.widget.DrawerLayout>

我上传的图像是故意在 6mb 左右的,以查看该栏,但它是不可见的。你能帮忙的话,我会很高兴。非常感谢。 :-)

最佳答案

在这个 uploadImage(boolean profilePhoto) 方法 spinner.setVisibility(View.VISIBLE);spinner.setVisibility(View.GONE); 将被立即调用,因此您看不到进度条。

理想情况下,您应该像这样使用 AsyncTask

class UploadImageAsyncTask extends AsyncTask<Void, Void, Void> {

@Override
protected void onPreExecute() {
super.onPreExecute();
spinner.setVisibility(View.VISIBLE);
}

@Override
protected String doInBackground(Void... params) {
// Upload image here
return null;
}

@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
spinner.setVisibility(View.GONE);
}
}

关于安卓 : Progress bar not shown even after setting visible.,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33941804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com