Android 2.3.3 için ilerleme iletişim kutusunu kullanıyorum. İlerleme iletişim kutusunun durumu "60% 60/100" biçiminde gösteriliyor ancak sadece "60/100" değil, yalnızca yüzdesini göstermek istiyorum. Nasıl yapabilirim? lütfen yardım et.ilerleme çubuğu durumunu yüzde olarak gösterme
cevap
Lütfen this linkini ziyaret edin.
Ayrıca, SDK içindeki ApiDemos'ta tam olarak açıklanmıştır. İstediğiniz örnek ProgressBar3.java olarak adlandırılır ve \ ApiDemos \ src \ com \ example \ android \ apis \ view \
adresinde bulunabilir. Ayrıca, yalnızca iletişim kutusunun sınırlarını kaldırmak isterseniz İlerleme çubuğu, diyaloğu kendisini şeffaf bir görünüm/yer paylaşımı olarak tanımlayabilirsiniz (örnekler de açıklanmıştır).
documentation göre, bu davranışı elde etmek için ProgressDialog
örneğinde setProgressNumberFormat (null)
aramalısınız
Hey İşte sdcard bir dosya kaydetme ve bir ilerleme çubuğu gösteren bir sunucudan dosya indirme. Alacağınız böyle
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);
}
}
}
..
bu i net bulduğumuz örnek resimdir.
ve bu benim xml dosyasıdır:
<?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>
Bu soruya bir cevap değil – SoroushA
Bahsettiğiniz yöntem API seviyesi için geçerlidir 11. mayın 10 – Dhanesh
:(Kötü kazmak kaynağına kodunu ettik ve öğrenmek Benim olduğunu Bunu api 10'da yapmak için "normal" bir yol yoktur. Ben sadece Android 4.0.1'den tam ProgessDialog kodunu almak ve bunun yerine yerleşik sürümü kullanmak için geçici bir çözüm önerebilirim. android "internal" kaynakları, ancak yeniden kullanmak için kaynak olarak da kullanılabilir. – OleGG