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

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

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

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

۳ مطلب با موضوع «services» ثبت شده است

اجرای یک سری کد، به صورت چندین بار و با فواصل زمانی منظم و یک زمان نهایی برای پایان، با روش onTick از کلاس CountDownTimer ، در برنامه نویسی اندروید

کلاس CountDownTimer ، این قابلیت را هم دارد که در آن تعیین کنیم که یک سری کد، در فاصله های زمانی مشخص، اجرا شوند، البته تا وقتی که زمان تعیین شده به عنوان زمان پایان، فرا رسد.

برای این منظور، این بار باید از روش onTick موجود در کلاس CountDownTimer استفاده کنیم.

به عنوان مثال :

 
new CountDownTimer(17000,4000){
    @Override
    public void onTick(long millisUntilFinished){
        // your code
    } 
    @Override
    public void onFinish(){}
}.start();

که در آن، به جای عبارت // your code باید کدهای مورد نظر خود را بنویسید.

دو عدد را برای کلاس CountDownTimer ذکر کرده ایم، یکی عدد 17000 میلی ثانیه (17 ثانیه) که زمان پایان را مشخص می کند و دیگری عدد 4000 میلی ثانیه (4 ثانیه) که بازه زمانی بین تکرار شدن اجرای کدها را مشخص کرده است.

بنابراین زمان پایان برابر 17000 میلی ثانیه (17 ثانیه) تعیین شده است و کدهای تعیین شده برای روش onTick هم تا قبل از فرا رسیدن زمان پایان، هر 4000 میلی ثانیه (4 ثانیه) یک بار، اجرا خواهند شد.

یک مثال کامل :

 
new CountDownTimer(17000,4000){
    @Override
    public void onTick(long millisUntilFinished){
        Toast.makeText(getApplicationContext(), "kelidestan.com", Toast.LENGTH_SHORT).show();
    }
    @Override
    public void onFinish(){}
}.start();

بنابراین کد زیر 4 بار اجرا خواهد شد (با فاصله زمانی 4 ثانیه) :

 
Toast.makeText(getApplicationContext(), "kelidestan.com", Toast.LENGTH_SHORT).show();

کلاس Toast برای نمایش یک پیام به مدت چند ثانیه، به کار می رود . کد بالا باعث نمایش عبارت kelidestan.com به مدت چند ثانیه می شود.

نکته

در متغیر millisUntilFinished ، مقدار زمان باقیمانده تا زمان پایان بر اساس میلی ثانیه، ذخیره می شود. برای درک بهتر این موضوع، کدهای زیر را اجرا نمایید :

 
new CountDownTimer(13000,4000){
    @Override
    public void onTick(long millisUntilFinished){
        String str = "seconds remaining: " + millisUntilFinished / 1000;
        Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT).show();
    } 
    @Override
    public void onFinish(){}
}.start();

بنابراین پیام های زیر با فاصله های 4 ثانیه ای، نمایش داده می شوند :

 
seconds remaining: 12
 
seconds remaining: 8
 
seconds remaining: 4
نکته

بنده بر اساس تجربه متوجه شدم که این روش، کاملا دقیق نیست (البته اگر زمان در حد میلی ثانیه برای شما مهم باشد). به عنوان مثال، اگر کد زیر را چندین بار اجرا کنید، اعداد میلی ثانیه مربوط به زمان، در اجراهای مختلف، متفاوت خواهند بود :

 
new CountDownTimer(13000,4000){
    @Override
    public void onTick(long millisUntilFinished){
        String str = "milliseconds remaining: " + millisUntilFinished;
        Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT).show();
    } 
    @Override
    public void onFinish(){}
}.start();
  • vahid hasani

در این اموزش با نحوه ایجاد یک سبک نمایشی برای یک دکمه اشنا می شیم.برای این کار یک پروژه جدید ایجاد می کنیم و اسمش رو Styles قرار میدیم

 

 

 

بعد از ایجاد پروژه یک دکمه بروی لایه خودمون اضافه می کنیم  تا با استفاده از استایل یک طرح زیبا بهش بدیم،برای ایجاد یک استایل جدید وارد پوشه res-values میشیم و فایل styles.xml رو باز می کنیم و کدهای زیر رو بهش اضافه میکینم.

 

  <!-- اماده سازی ستایل برای طراحی دکمه. -->

<style name="CustomButtonStyle">

<item name="android:layout_width">120dp</item>

<item name="android:layout_height">50dp</item>

<item name="android:capitalize">characters</item>

<item name="android:typeface">serif</item>

<item name="android:shadowDx">1.2</item>

<item name="android:shadowDy">1.2</item>

<item name="android:shadowRadius">2</item>

<item name="android:textColor">#494948</item>/>

<item name="android:gravity" >center</item>

<item name="android:layout_margin" >3dp</item>

<item name="android:textSize" >18sp</item>

<item name="android:shadowColor" >#000000</item>

</style>

 

</resources>

 

 

یک تگ style ایجاد میکنیم و اسمش رو CustomButtonStyle قرار میدیم،در مرحله دوم یک مقدار layout_width و layout_height میدیم تا عرض و ارتفاع دکمه رو هم از طریق استایل تغییر بدیم.در مرحله سوم یک خاصیت capitalize میدیم تا تکست داخل باتن به صورت درشت نوشته شوند.در مرحله چهارم خاصیت typeface رو بهش اضافه میکنیم تا تکست داخل باتن طرح serif رو بگیره،در مرحله پنجم shadowDx وshadowDy میدیم تا به تکستمون سایه بدیم.در مرحله ششم یک خاصیت shadowRadius اضافه میکنیم تا برای سایمون یک شعاع در نظر بگیره،در مرحله هفتم خاصیت textColor اضافه میکنیم تا به تکستمون رنگ در نظر بگیره،در مرحله هشتم خاصیت gravity میدیم تا تکستمون در مرکزیت باتن قرار بدیم،در مرحله نهم خاصیت layout_margin اضافه میکنیم تا به دکمون مقدار margin بده،در مرحله دهم خاصبت textSize رو اضافه میکنیم تا اندازه تکست رو تغییر بده،در مرحله اخر هم خاصیت shadowColor رو هم اضافه میکنیم تا یک رنگ به سایه بده.

 

بعد از تکمیل کردن style حالا وقت اون رسیده که استایلمون رو به دکمه اضافه کنیم،برای این کار از این دستور استفاده می کنیم style="@style/CustomButtonStyle

  • vahid hasani

 

ساخت لینک به یک آدرس اینترنتی (نمایش لیست مرورگرهای اینترنت گوشی، بعد از اشاره به لینک)، در برنامه نویسی اندروید

 

فرض کنید که بخواهیم به یک آدرس اینترنتی (مثلا سایت گوگل به آدرس اینترنتی http://www.google.com)، یک لینک بدهیم، برای این منظور باید از کدهای زیر استفاده کنیم :

 

Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));

startActivity(browserIntent);

 

اگر بخواهیم لینک، توسط یک دکمه (Button) ساخته شود، می توانیم آن کدها را به صورت زیر برای دکمه (Button) به کار ببریم (فرض کرده ایم که id دکمه برابر button1 می باشد) :

 

Button b = (Button) findViewById(R.id.button1);

b.setOnClickListener(new OnClickListener() {

                                         

    @Override

    public void onClick(View v) {

        Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));

        startActivity(browserIntent);

    }

});

 

پس از اشاره بر روی دکمه (Button)، لیستی از مرورگرهای اینترنت گوشی نمایش داده می شود که کاربر می تواند مرورگر اینترنت دلخواه خود را انتخاب کند تا آن آدرس اینترنتی، در مرورگر باز شود.

  • vahid hasani