مقالات تخصصی برنامه نویسی اندروید

اموزش برنامه نویسی اندروید

مقالات تخصصی برنامه نویسی اندروید

اموزش برنامه نویسی اندروید

  • ۰
  • ۰

ساده ترین راه برای ساختن دایره پیشرفت استفاده از کلاس و فراخوانی ProgressDialog می باشد. LoadingBar هم می تواند ازطریق همین کلاس ساخته شود.  تنها تفاوت منطقی بین bar و دایره این است که اولی وقتی استفاده می شود که شما زمان کل انتظار برای فعالیت خاص را می دانید، در حالیکه دومی زمانی استفاده می شود که شما زمان این انتظار را نمی دانید.

 

برای این منظور لازم است که یک شئ ازاین کلاس را به عنوان نمونه قرار دهید، که ترکیب آن را مشاهده می کنید.

 

ProgressDialog progress =newProgressDialog(this);

 

حال شما می توانید چند ویژگی مربوط به این دیالوگ را، از جمله استایل، متن و غیره ، تنظیم کنید.

 

 

 

progress.setMessage("Downloading Music :) ");

progress.setProgressStyle(ProgressDialog.STYLE_SPINNER);

progress.setIndeterminate(true);

 

علاوه بر این متدها، متدهای دیگری نیز توسط کلاس ProgressDialog ارائه می شوند.

 

getMax()

این متد بیشترین مقدار یک پیشروی را گزارش می دهد.

 

incrementProgressBy(int diff)

این متد پیشرویbar  توسط مقادیر مختلف، که به عنوان پارامتر عبور کرده اند، افزایش می دهد.

 

setIndeterminate(boolean indeterminate)

 

این متد نشانگر پیشروی را به عنوان معین یا نامعین، تنظیم می کند.

 

setMax(int max)

 

این متد بیشترین مقدار یک دیالوگ پیشروی را تنظیم می کند.

 

setProgress(int value)

 

این متد برای آپدیت دیالوگ پیشروی با چند مقدار مشخص، استفاده می شود.

 

show(Context context, CharSequence title, CharSequence message)

 

این متد یک متد استاتیک می باشد که برای نمایش دیالوگ پیشروی استفاده می شود.

 

***مثال

 

این مثال یک ProgressDialog در حال چرخش را توضیح می دهد. با فشار دکمه دیالوگ ProgressDialog در حال چرخش خواهید داشت.

 

برای اجرای این مثال لازم است پس ازپیش بردن برنامه طبق مراحل زیر، آن را روی یک دستگاه واقعی اجرا کنید.

 

برای ایجاد یک برنامه ی اندروید از Eclipse IDE استفاده خواهید کرد و آن را با عنوان  ProgressDialog   به عنوان بسته ی com.PRG. progressdialog نام گذاری کنید. زمان ایجاد این برنامه مطمئن شوید که Target SDKو Compile With در آخرین ورژن Android SDKهستند تا از سطوح بالاتر API  استفاده کنید.

 

فایل src/MainActivity.java را برای افزودن کد پیشروی و نمایش دیالوگ پیشروی spinning، تغییر دهید.

 

فایل res/layout/activity_main.xml را برای افزودن کد XML مربوطه تغییر دهید.

 

برنامه را اجرا کنید، یک دستگاه اجرایی اندروید انتخاب کنید و برنامه را روی آن نصب کرده و نتایج را بررسی کنید.

 

در زیر محتوای فایل تغییر یافته MainActivity.java را مشاهده می کنید.

 

package com.PRG.ProgressDialog   ;

 

import android.app.Activity;

import android.app.ProgressDialog;

import android.os.Bundle;

import android.os.Handler;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.widget.Button;

 

public class MainActivity extends Activity {

   Button b1;

   private  ProgressDialog progressBar;

   private int progressBarStatus = 0;

   private Handler progressBarbHandler = new Handler();

   private long fileSize = 0;

  

   @Override

   protected void onCreate(Bundle savedInstanceState) {

      super.onCreate(savedInstanceState);

      setContentView(R.layout.activity_main);

      b1=(Button)findViewById(R.id.button);

     

      b1.setOnClickListener(new View.OnClickListener() {

         @Override

         public void onClick(View v) {

            progressBar = new ProgressDialog(v.getContext());

            progressBar.setCancelable(true);

            progressBar.setMessage("File downloading ...");

            progressBar.setProgressStyle(ProgressDialog.STYLE_SPINNER);

            progressBar.setProgress(0);

            progressBar.setMax(100);

            progressBar.show();

            progressBarStatus = 0;

           

            fileSize = 0;

            new Thread(new Runnable() {

               public void run() {

                  while (progressBarStatus < 100) {

                     progressBarStatus = downloadFile();

                    

                     try {

                        Thread.sleep(1000);

                     }

                     

                     catch (InterruptedException e) {

                        e.printStackTrace();

                     }

                    

                     progressBarbHandler.post(new Runnable() {

                        public void run() {

                           progressBar.setProgress(progressBarStatus);

                        }

                     });

                  }

                 

                  if (progressBarStatus >= 100) {

                     try {

                        Thread.sleep(2000);

                     }

                    

                     catch (InterruptedException e) {

                        e.printStackTrace();

                     }

                     progressBar.dismiss();

                  }

               }

            }).start();

         }

      });

   }

   public int downloadFile() {

      while (fileSize <= 1000000) {

         fileSize++;

        

         if (fileSize == 100000) {

            return 10;

         }

        

         else if (fileSize == 200000) {

            return 20;

         }

        

         else if (fileSize == 300000) {

            return 30;

         }

        

         else if (fileSize == 400000) {

            return 40;

         }

        

         else if (fileSize == 500000) {

            return 50;

         }

        

         else if (fileSize == 700000) {

            return 70;

         }

         else if (fileSize == 800000) {

            return 80;

         }

      }

      return 100;

   }

  

   @Override

   public boolean onCreateOptionsMenu(Menu menu) {

      // Inflate the menu; this adds items to the action bar if it is present.

      getMenuInflater().inflate(R.menu.menu_main, menu);

      return true;

   }

  

   @Override

   public boolean onOptionsItemSelected(MenuItem item) {

      // Handle action bar item clicks here. The action bar will

      // automatically handle clicks on the Home/Up button, so long

      // as you specify a parent activity in AndroidManifest.xml.

     

      int id = item.getItemId();

     

      //noinspection SimplifiableIfStatement

      if (id == R.id.action_settings) {

         return true;

      }

      return super.onOptionsItemSelected(item);

   }

}

 

محتوای res/layout/activity_main.xml  مانند زیر تغییر دهید.

 

<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:paddingLeft="@dimen/activity_horizontal_margin"

   android:paddingRight="@dimen/activity_horizontal_margin"

   android:paddingTop="@dimen/activity_vertical_margin"

   android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

  

   <TextView android:text="Music Palyer" android:layout_width="wrap_content"

      android:layout_height="wrap_content"

      android:id="@+id/textview"

      android:textSize="35dp"

      android:layout_alignParentTop="true"

      android:layout_centerHorizontal="true" />

     

   <TextView

      android:layout_width="wrap_content"

      android:layout_height="wrap_content"

      android:text="Tutorials point"

      android:id="@+id/textView"

      android:layout_below="@+id/textview"

      android:layout_centerHorizontal="true"

      android:textColor="#ff7aff24"

      android:textSize="35dp" />

     

   <Button

      android:layout_width="wrap_content"

      android:layout_height="wrap_content"

      android:text="download"

      android:id="@+id/button"

      android:layout_alignParentBottom="true"

      android:layout_centerHorizontal="true"

      android:layout_marginBottom="112dp" />

     

   <ImageView

      android:layout_width="wrap_content"

      android:layout_height="wrap_content"

      android:id="@+id/imageView"

      android:src="@drawable/abc"

      android:layout_below="@+id/textView"

      android:layout_centerHorizontal="true" />

     

</RelativeLayout>

 

res/values/string.xml را به شکل زیر تغییر دهید.

 

<resources>

   <string name="app_name">My Application</string>

   <string name="hello_world">Hello world!</string>

   <string name="action_settings">Settings</string>

</resources>

 

محتوای فایل AndroidManifest.xml را به شکل زیر تغییر دهید.

 

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

   package="com.PRG.progressdialog"

   android:versionCode="1"

   android:versionName="1.0" >

 

   <application

      android:allowBackup="true"

      android:icon="@drawable/ic_launcher"

      android:label="@string/app_name"

      android:theme="@style/AppTheme" >

     

      <activity

         android:name="com.PRG.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>

 

اجازه بدهید برنامه ی ProgressDialog را اجرا کنیم. فرض می کنیم که دستگاه موبایل اندروید خود را به کامپیوتر متصل کرده اید. برای اجرای برنامه از Eclipse، یکی ازفایل های فعالیت پروژه را باز کرده و روی آیکنRun از تولبار کلیک کنید. دستگاه موبایل خود را به عنوان یک گزینه انتخاب کرده و سپس آن را بررسی کنید که صفحه  را نمایش می دهد.

 

  • ۹۹/۰۳/۰۵
  • vahid hasani

نظرات (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی