Android UI 컨트롤 시리즈: ProgressBar(진행 표시줄)
안드로이드가 게임 로딩, 노래 재생 등 일부 백그라운드 작업을 수행할 때 사용자는 프로그램 실행 진행 상황을 알 수 없습니다. 이때 진행률 표시줄을 사용하여 진행 상황을 표시할 수 있습니다.
Android 시스템은 긴 진행률 표시줄(progressBarStyleHorizontal)과 원형 진행률 표시줄(progressBarStyleLarge)의 두 가지 유형의 진행률 표시줄을 제공합니다. Android 플랫폼의 기본 진행률 표시줄은 두 번째 유형입니다. 또한 양식의 제목 표시줄에 진행률 표시줄을 설정할 수도 있습니다. 이 진행률 표시줄을 표시하려면 "requestWindowFeature(Window.FEATURE_PROGRESS)" 형식의 표시 스타일을 설정해야 합니다. setProgressBarVisibility(true); 표시하는 방법
다음은 제목 표시줄, 긴 진행 표시줄, 원형 진행 표시줄로 구성되고 스레드로 제어되는 예입니다.
참고: 원형 진행률 표시줄은 특정 진행 상황을 표시하지 않고 단순히
package org.hualang.progress; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.view.Window; import android.widget.Button; import android.widget.ProgressBar; public class ProgressBarTest extends Activity { //声明ProgressBar对象 private ProgressBar pro1; private ProgressBar pro2; private Button btn; protected static final int STOP_NOTIFIER = 000; protected static final int THREADING_NOTIFIER = 111; public int intCounter=0; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //设置窗口模式,,因为需要显示进度条在标题栏 requestWindowFeature(Window.FEATURE_PROGRESS); //设置标题栏上的进度条可见 setProgressBarVisibility(true); setContentView(R.layout.main); //取得ProgressBar pro1 = (ProgressBar) findViewById(R.id.progress1); pro2= (ProgressBar) findViewById(R.id.progress2); btn = (Button)findViewById(R.id.button); //设置进度条是否自动运转,即设置其不确定模式,false表是不自动运转 pro1.setIndeterminate(false); pro2.setIndeterminate(false); //当按钮按下时开始执行, btn.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub //设置ProgressBar为可见状态 pro1.setVisibility(View.VISIBLE); pro2.setVisibility(View.VISIBLE); //设置ProgressBar的最大值 pro1.setMax(100); //设置ProgressBar当前值 pro1.setProgress(0); pro2.setProgress(0); //通过线程来改变ProgressBar的值 new Thread(new Runnable() { public void run() { for (int i = 0; i < 10; i++) { try { intCounter = (i + 1) * 20; Thread.sleep(1000); if (i == 4) { Message m = new Message(); m.what = ProgressBarTest.STOP_NOTIFIER; ProgressBarTest.this.myMessageHandler.sendMessage(m); break; } else { Message m = new Message(); m.what = ProgressBarTest.THREADING_NOTIFIER; ProgressBarTest.this.myMessageHandler.sendMessage(m); } } catch (Exception e) { e.printStackTrace(); } } } }).start(); } }); } Handler myMessageHandler = new Handler() { // @Override public void handleMessage(Message msg) { switch (msg.what) { //ProgressBar已经是对大值 case ProgressBarTest.STOP_NOTIFIER: pro1.setVisibility(View.GONE); pro2.setVisibility(View.GONE); Thread.currentThread().interrupt(); break; case ProgressBarTest.THREADING_NOTIFIER: if (!Thread.currentThread().isInterrupted()) { // 改变ProgressBar的当前值 pro1.setProgress(intCounter); pro2.setProgress(intCounter); // 设置标题栏中前景的一个进度条进度值 setProgress(intCounter*100); // 设置标题栏中后面的一个进度条进度值 setSecondaryProgress(intCounter*100);// } break; } super.handleMessage(msg); } }; }
main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="进度条实例演示" /> <ProgressBar android:id="@+id/progress1" style="?android:attr/progressBarStyleHorizontal"---设置进度条为长条形 android:layout_width="fill_parent" android:layout_height="wrap_content" android:visibility="gone"---设置其不可见 /> <ProgressBar android:id="@+id/progress2" style="?android:attr/progressBarStyleLarge"---设置进度条为圆形进度条 android:layout_width="wrap_content" android:layout_height="wrap_content" android:max="100"---设置其最大值 android:progress="50"---设置当前进度值 android:secondaryProgress="70"---设置次要进度值 android:visibility="gone" /> <Button android:id="@+id/button" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="启动进度条" /> </LinearLayout>
회전합니다. 실행 결과는 다음과 같습니다.
진행 막대 시작 버튼을 클릭하면 자동으로 진행 막대가 실행됩니다
종료되면 자동으로 진행바 프로그램을 종료하고 첫 번째 그림으로 돌아갑니다
위는 안드로이드 UI 컨트롤 시리즈의 내용입니다: ProgressBar(진행바) 관련 내용을 더 참고해주세요. PHP 중국어 웹사이트(www.php.cn)!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











최근 아이스 유니버스는 삼성의 차기 플래그십 스마트폰으로 널리 알려진 갤럭시 S25 울트라에 대한 세부 정보를 꾸준히 공개해 왔습니다. 무엇보다도 유출자는 삼성이 카메라 업그레이드를 하나만 가져올 계획이라고 주장했습니다.

OnLeaks는 이제 Android Headlines와 제휴하여 X(이전 Twitter) 팔로어로부터 4,000달러 이상의 수익을 창출하려는 시도가 실패한 지 며칠 후 Galaxy S25 Ultra에 대한 첫 번째 모습을 제공합니다. 맥락에 따라 h 아래에 포함된 렌더링 이미지

TCL은 두 가지 새로운 스마트폰을 발표하는 것과 함께 NXTPAPER 14라는 새로운 Android 태블릿도 발표했는데, TCL의 거대한 화면 크기는 판매 포인트 중 하나입니다. NXTPAPER 14는 TCL의 시그니처 브랜드인 무광택 LCD 패널 버전 3.0을 갖추고 있습니다.

최근 아이스 유니버스는 삼성의 차기 플래그십 스마트폰으로 널리 알려진 갤럭시 S25 울트라에 대한 세부 정보를 꾸준히 공개해 왔습니다. 무엇보다도 유출자는 삼성이 카메라 업그레이드를 하나만 가져올 계획이라고 주장했습니다.

Vivo Y300 Pro는 방금 완전히 공개되었으며 대용량 배터리를 갖춘 가장 얇은 중급 Android 휴대폰 중 하나입니다. 정확히 말하면 스마트폰의 두께는 7.69mm에 불과하지만 배터리 용량은 6,500mAh입니다. 최근 출시된 것과 동일한 용량이다.

모토로라는 올해 셀 수 없이 많은 기기를 출시했지만 그 중 폴더블 기기는 2개뿐이었습니다. 맥락에 따라 전 세계 대부분이 Razr 50 및 Razr 50 Ultra로 쌍을 받았지만 Motorola는 북미에서 Razr 2024 및 Razr 2로 제공합니다.

삼성전자는 팬에디션(FE) 스마트폰 시리즈를 언제 업데이트할지 아직 힌트를 주지 않았다. 현재 상태로 Galaxy S23 FE는 2023년 10월 초에 출시된 회사의 최신 버전으로 남아 있습니다.

Redmi Note 14 Pro Plus는 이제 작년 Redmi Note 13 Pro Plus(Amazon에서 현재 $375)의 직접적인 후속 제품으로 공식화되었습니다. 예상대로 Redmi Note 14 Pro Plus는 Redmi Note 14 및 Redmi Note 14 Pro와 함께 Redmi Note 14 시리즈를 주도합니다. 리
