2012-01-28 2 views

답변

1

this 링크를 방문하십시오.

또한 SDK의 ApiDemos에 설명되어 있습니다. 원하는 예제는 ProgressBar3.java로 이름 지어지고 \ ApiDemos \ src \ com \ example \ android \ apis \ view \

도 찾을 수 있습니다. 대화 상자 테두리를 제거하여 진행 표시 줄이 나타나면 대화 상자 자체를 투명한 뷰/오버레이로 정의 할 수 있습니다 (예제에서도 마찬가지 임).

17

documentation에 따르면,이 동작을 얻을 수 있도록 ProgressDialog 인스턴스 setProgressNumberFormat (null)를 호출해야

+2

당신이 언급 한 방법은 API 레벨에 적용 11. 내 10 – Dhanesh

+1

가 :(내가 나쁜 발굴 소스에 코드를했는데 알아 내입니다 그게 정상적인 방법으로 API 10에서 할 수 없다는 것입니다. 나는 안드로이드 4.0.1에서 ProgessDialog 코드 전체를 얻기위한 임시 해결책을 제안 할 수 있으며 내장 버전 대신 사용할 수 있습니다. 안드로이드 "내부"자원이지만 다시 사용할 수있는 소스로도 제공됩니다. – OleGG

11

이봐, 여기의 sdcard에 파일을 저장하고 진행 표시 줄을 표시 서버에서 파일을 다운로드. 당신이 얻을이 같은

public class XYZ extends Activity { 

    public static final int DIALOG_DOWNLOAD_PROGRESS = 0; 
    private Button startBtn; 
    private ProgressDialog mProgressDialog; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     startBtn = (Button)findViewById(R.id.startBtn); 
     startBtn.setOnClickListener(new OnClickListener(){ 
      public void onClick(View v) { 
       startDownload(); 
      } 
     }); 
    } 

    private void startDownload() { 
     String url = "http://.jpg"; 
     new DownloadFileAsync().execute(url); 
    } 
    @Override 
    protected Dialog onCreateDialog(int id) { 
     switch (id) { 
     case DIALOG_DOWNLOAD_PROGRESS: 
      mProgressDialog = new ProgressDialog(this); 
      mProgressDialog.setMessage("Downloading file.."); 
      mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 
      mProgressDialog.setCancelable(false); 
      mProgressDialog.show(); 
      return mProgressDialog; 
     default: 
      return null; 
     } 
    } 

class DownloadFileAsync extends AsyncTask<String, String, String> { 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     showDialog(DIALOG_DOWNLOAD_PROGRESS); 
    } 

    @Override 
    protected String doInBackground(String... aurl) { 
     int count; 

    try { 

    URL url = new URL(aurl[0]); 
    URLConnection conexion = url.openConnection(); 
    conexion.connect(); 

    int lenghtOfFile = conexion.getContentLength(); 
    Log.d("ANDRO_ASYNC", "Lenght of file: " + lenghtOfFile); 

    InputStream input = new BufferedInputStream(url.openStream()); 
    OutputStream output = new FileOutputStream("/sdcard/some_photo_from_gdansk_poland.jpg"); 

    byte data[] = new byte[1024]; 

    long total = 0; 

     while ((count = input.read(data)) != -1) { 
      total += count; 
      publishProgress(""+(int)((total*100)/lenghtOfFile)); 
      output.write(data, 0, count); 
     } 

     output.flush(); 
     output.close(); 
     input.close(); 
    } catch (Exception e) {} 
    return null; 

    } 
    protected void onProgressUpdate(String... progress) { 
     Log.d("ANDRO_ASYNC",progress[0]); 
     mProgressDialog.setProgress(Integer.parseInt(progress[0])); 
    } 

    @Override 
    protected void onPostExecute(String unused) { 
     dismissDialog(DIALOG_DOWNLOAD_PROGRESS); 
    } 
} 
} 

..

이 내가 인터넷에서 발견 예를 들어 이미지입니다. enter image description here

이 내 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="@string/hello" /> 
    <Button 
     android:text="Start long running task.." 
     android:id="@+id/startBtn" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"> 
    </Button> 
</LinearLayout> 
+5

이것은 질문에 대한 대답이 아닙니다. – SoroushA