Hurriyet Spor

Bumerang - Yazarkafe

Android'de ProgressBar ile dosya indirme

Progressbar herhangi bir işlemin başlangıç ve bitiş zamanını grafik olarak göstermekte kullanılır. Dosya indirme yükleme işlemleri kurulum gibi farklı işlemleri kullanıcıya göstermek amacıyla kullanılabilir. Bu bölümde progressbar kullanarak dosya indirmeyi görelim.
 

ProgressDialog islem = new ProgressDialog(this);

şeklinde  tanımlayarak işe başlamalıyız.


progress.setMessage("İndirilen Müzik Dosyası :) ");
progress
.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progress
.setIndeterminate(true)

 

Kullanılan Özellikler 




























getMax()
Progressbar Maksimum Değeri
incrementProgressBy(int diff)
Progressbar girilen farklı bir parametre olarak büyültür.
setIndeterminate(boolean indeterminate)
Göstergeyi belirnelebilir yada belirlenemez olarak değiştirir
setMax(int max)
Verilecek maksimum değer
setProgress(int value)
Progressbar' ı belli bir değerle güncelleme
show(Context context, CharSequence title, CharSequence message)

Progress dialogu göstermek için kullanılan statik değer

Oluşturacağımız MainActivity Dosyası


package com.example.progressdialog;

import com.example.progressdialog.R;

import android.os.Bundle;
import android.app.Activity;
import android.app.ProgressDialog;
import android.view.Menu;
import android.view.View;

public class MainActivity extends Activity {

private ProgressDialog progress;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
progress = new ProgressDialog(this);
}


public void open(View view){
progress.setMessage("Downloading Music :) ");
progress.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progress.setIndeterminate(true);
progress.show();

final int totalProgressTime = 100;

final Thread t = new Thread(){

@Override
public void run(){

int jumpTime = 0;
while(jumpTime < totalProgressTime){
try {
sleep(200);
jumpTime += 5;
progress.setProgress(jumpTime);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}
};
t.start();

}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}

Layout Dosyası 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="150dp"
android:onClick="open"
android:text="@string/download_button" />

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginTop="19dp"
android:text="@string/download_text"
android:textAppearance="?android:attr/textAppearanceLarge" />

</RelativeLayout>

Manifest Dosyamıza da aşağıdaki gibi olmalı
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.progressdialog"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.progressdialog.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest> 

 

Hiç yorum yok:

Yorum Gönder