شرح AnalogClock, DigitalClock And TextClock في الاندرويد

AnalogClock و DigitalClock و TextClock في Android مع مثال

في Android ، AnalogClock عبارة عن ساعة يد واحدة لمؤشر الساعة والأخرى لمؤشر الدقائق و DigitalClock و TextClock كلاهما يشبه ساعتك الرقمية العادية في متناول اليد والتي تعرض الساعات والدقائق والثواني بتنسيق رقمي. يمكنك ببساطة استخدام هاتين الحاجتين في التطبيق الخاص بك ولكن لا يمكن استخدام هذه المكونات لتغيير الوقت بحيث يمكنك استخدام مكون TimePicker .

الساعة التناظرية والساعة الرقمية والساعة النصية Android
ملاحظة مهمة:  يتم استخدام كل من AnalogClock و DigitalClock و TextClock لعرض الوقت فقط ولا يمكنك تغيير الوقت. لذلك إذا كنت بحاجة إلى تغيير الوقت ، يمكنك استخدام Timepicker .


أنواع الساعة في Android

ساعة عقارب Analog Clock

الساعة Analog Clock هي أداة تستخدم لعرض عقارب الساعة حيث يكون أحدهما لمؤشر الساعة والآخر لمؤشر الدقائق.

كود الساعة التناظرية في XML:

<AnalogClock
    android:id="@+id/simpleAnalogClock"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
  

الساعة التناظرية في Android
ساعة رقمية Digital Clock 

الساعة Digital Clock: هي أداة تستخدم لعرض الساعات والدقائق والثواني بتنسيق رقمي.

كود الساعة الرقمية في XML:

<DigitalClock
    android:id="@+id/simpleDigitalClock"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

ملاحظة مهمة: الساعة الرقمية مهملة في الإصدار "API 17". من مستوى API 17 ، يمكنك استخدام TextClock بدلاً من الساعة الرقمية . يوجد أدناه وصف ساعة النص في android.

الساعة الرقمية في Android
ساعة النص Text Clock

Text Clock هو عنصر واجهة مستخدم مثل Digital Clock ولكن كما هو الحال في مستوى API 17 ، يتم إهمال الساعة الرقمية لذا يتعين علينا استخدام ساعة نصية بدلاً من الساعة الرقمية. إذا استخدمنا ساعة نصية في تطبيقنا ، فهذا يتطلب الحد الأدنى من مستوى API 17.

كود الساعة النصية في XML:

<TextClock
    android:id="@+id/simpleTextClock"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
  

TextClock في Android


سمات الساعة AnalogClock

الآن دعونا نصف بعض السمات الشائعة والمهمة التي تساعدنا على تكوين الساعة التناظرية أو النصية أو الرقمية في ملف xml (التخطيط).

1. المعرّف id :  المعرّف هو سمة مستخدمة بشكل فريد للساعة التناظرية أو الرقمية. يوجد أدناه مثال على رمز مع شرح مضمن ، حيث قمنا بتعيين معرف الساعة التناظرية .

<AnalogClock
    android:id="@+id/simpleAnalogClock"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" /> <!--  id attribute of a analog clock used to uniquely identify it -->
  

2. الخلفية background : تُستخدم سمة الخلفية لضبط خلفية الساعة التناظرية أو الرقمية أو النصية. يمكنك ضبط لون أو رسم في الخلفية. يمكن أيضًا تعيين لون الخلفية فيفئة java باستخدام طريقة setBackgroundColor ().

في الكود أدناه ، نستخدم سمة الخلفية لتعيين اللون الأخضر لخلفية الساعة التناظرية .

<AnalogClock
    android:id="@+id/simpleAnalogClock"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#0f0"/>
    <!-- set green color for the background of analog clock -->

الخلفية في textclock الرقمية التناظرية
ضبط الخلفية في فئة Java:

AnalogClock simpleAnalogClock = (AnalogClock)findViewById(R.id.simpleAnalogClock); // inititate a analog clock
    simpleAnalogClock.setBackgroundColor(Color.GREEN); // green color for the background of the analog clock
  

سمات DigitalClock أو TextClock

الآن دعونا نناقش بعض سمات الساعة الرقمية أو الساعة النصية ولا يتم استخدامها للساعة التناظرية:

1. المساحة المتروكة padding :  الحشو هو سمة مستخدمة لتعيين المساحة المتروكة من الجانب الأيسر أو الأيمن أو العلوي أو السفلي للساعة الرقمية .

ملاحظة مهمة: سمة الحشو ليس لها أي تأثير على الساعة التناظرية.

  •  padding إلى اليمين: يتم استخدام خاصية padding right لضبط المساحة المتروكة من الجانب الأيمن للساعة الرقمية .
  • paddingLeft: يتم استخدام خاصية padding left لتعيين المساحة المتروكة من الجانب الأيسر للساعة الرقمية .
  • paddingTop: يتم استخدام الخاصية padding top لتعيين المساحة المتروكة من الجانب العلوي للساعة الرقمية .
  • paddingBottom: يتم استخدام خاصية padding bottom لضبط المساحة المتروكة من الجانب السفلي للساعة الرقمية .
  • الحشوة : تُستخدم خاصية الحشو لضبط الحشوة من جميع جوانب الساعة الرقمية.

أدناه قمنا بتعيين حشوة 30dp من جميع جوانب الساعة الرقمية.

<DigitalClock
    android:id="@+id/simpleDigitalClock"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:background="#0f0"
    android:padding="30dp"/><!-- set  30dp padding from all the sides of the digital clock -->

الحشو في digitalclock أو android textclock
2. الجاذبية gravity :  سمة الجاذبية هي سمة اختيارية تُستخدم للتحكم في محاذاة النص مثل اليسار ، واليمين ، والوسط ، والأعلى ، والأسفل ، والمركز الرأسي ، والمركز الأفقي ، إلخ.

أدناه نضع الجاذبية الصحيحة لنص ساعة رقمية.

<DigitalClock
    android:id="@+id/simpleDigitalClock"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:textSize="25sp"
    android:padding="20dp"
    android:gravity="right"/> <!--  set right gravity for the text of the digital clock -->
  

الجاذبية في DigitalClock Android
3. textColor: تستخدم سمة textColor لضبط لون نص الساعة الرقمية. تكون قيمة اللون على شكل "#argb" أو "#rgb" أو "#rrggbb" أو "#aarrggbb".

أدناه قمنا بتعيين اللون الأحمر للنص المعروض لساعة رقمية.

<DigitalClock
    android:id="@+id/simpleDigitalClock"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:textSize="25sp"
    android:padding="20dp"
    android:textColor="#f00"/> <!--  red color for the displayed text -->
  

textColor في DigitalClock Android
لون الساعة الرقمية في فئة Java:

DigitalClock simpleDigitalClock = (DigitalClock)findViewById(R.id.simpleDigitalClock); // initiate a digital clock
    simpleDigitalClock.setTextColor(Color.RED); // red text color for displayed text
  

4. textSize: تستخدم سمة textSize لتعيين حجم نص ساعة رقمية. يمكننا ضبط حجم النص في sp (مقياس بكسل مستقل) أو dp (كثافة بكسل).

أدناه قمنا بتعيين حجم 40sp لنص ساعة رقمية.

<DigitalClock
    android:id="@+id/simpleDigitalClock"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:padding="20dp"
    android:textSize="40sp" /> <!--  set 40sp for the displayed text size -->
  

حجم النص في DigitalClock Android
ضبط النصحجم DigitalClock في فئة Java:

DigitalClock simpleDigitalClock = (DigitalClock)findViewById(R.id.simpleDigitalClock); // initiate a digital clock
    simpleDigitalClock.setTextSize(25); // set size for displayed text
  

5. textStyle : يتم استخدام سمة textStyle لتعيين نمط النص لساعة رقمية. يمكنك ضبط الخط الغامق والمائل والعادي. إذا احتجنا إلى استخدام نمطين أو أكثر لساعة رقمية ، فحينئذٍ "|" عامل يستخدم لذلك.

أدناه نقوم بتعيين أنماط النص الغامق والمائل لنص ساعة رقمية.

<DigitalClock
    android:id="@+id/simpleDigitalClock"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:padding="20dp"
    android:textSize="25sp"
    android:textStyle="bold|italic" /> <!--  set bold and italic text style for the displayed text -->
  

textStyle في DigitalClock Android


مثال على الساعة التناظرية والرقمية Analog and Digital Clock

يوجد أدناه مثال على الساعة التناظرية والرقمية في Android حيث نعرض ساعة تناظرية ورقمية بسيطة باستخدام خصائصها المختلفة ونؤدي حدث النقر عليها ، لذلك عندما ينقر المستخدم على ساعة ، يتم عرض اسم الساعة باستخدام خبز محمص. فيما يلي الإخراج النهائي ، قم بتنزيل الكود والبرنامج التعليمي خطوة بخطوة:

تحميل كود المشروع ؟

مثال على الساعة التناظرية والساعة الرقمية في Android Studio
الخطوة 1: قم بإنشاء مشروع جديد وقم بتسميته AnalogAndDigitalExample

الخطوة 2: افتح الدقة -> التخطيط ->  activity_main. xml (أو) main.xml  وأضف الكود التالي:

في هذه الخطوة ، نفتح ملف 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: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">

    <TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:text="@string/analogClock"
    android:textSize="25sp"
    android:textStyle="bold" />

    <AnalogClock
    android:id="@+id/simpleAnalogClock"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="50dp"
    android:background="#0f0"
    android:padding="50dp" />

    <TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/simpleAnalogClock"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="50dp"
    android:text="@string/digitalClock"
    android:textSize="25sp"
    android:textStyle="bold" />

    <DigitalClock
    android:id="@+id/simpleDigitalClock"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textView2"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="20dp"
    android:background="#0f0"
    android:padding="20dp"
    android:textColor="#fff"
    android:textSize="25sp"
    android:textStyle="bold" />

    </RelativeLayout>

الخطوة 3: افتح src -> package ->  MainActivity. جافا

في هذه الخطوة نفتح MainActivity حيث نضيف الكود لبدء الساعة الرقمية والتناظرية ثم ننفذ حدث النقر عليها ، لذلك عندما ينقر المستخدم على ساعة ، يتم عرض اسم الساعة باستخدام Toast.

package example.abhiandroid.analoganddigitalclock;

    import android.graphics.Color;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.AnalogClock;
    import android.widget.DigitalClock;
    import android.widget.Toast;

    public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    // inititate the digital and analog clock
    DigitalClock simpleDigitalClock = (DigitalClock) findViewById(R.id.simpleDigitalClock);
    AnalogClock simpleAnalogClock = (AnalogClock) findViewById(R.id.simpleAnalogClock);
    // perform click event on analog clock
    simpleAnalogClock.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    Toast.makeText(MainActivity.this, "Analog Clock", Toast.LENGTH_SHORT).show(); // display a toast for analog clock
    }
    });
    // perform click event on digital clock
    simpleDigitalClock.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    Toast.makeText(MainActivity.this, "Digital Clock", Toast.LENGTH_SHORT).show(); //display a toast for digital clock
    }
    });
    }


    }

الخطوة 4: افتح res -> values ->  strings. xml

في هذه الخطوة ، نفتح ملف سلسلة يستخدم لتخزين بيانات سلسلة التطبيق.   في هذا المثال ، نقوم بتخزين سلسلتين ، أحدهما للساعة التناظرية والآخر للساعة الرقمية.

<resources>
    <string name="app_name">AnalogAndDigitalClock</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>
    <string name="analogClock">Analog Clock</string>
    <string name="digitalClock" >Digital Clock</string>
    </resources>
  

المخرجات :

الآن قم بتشغيل التطبيق في AVD وسترى الوقت معروضًا في الساعة التناظرية والساعة الرقمية.

ملاحظة مهمة: سيكون مثال ساعة النص مشابهًا للساعة الرقمية. كما ناقشنا سابقًا في هذه المقالة لمستوى API 17 أو أعلى ، ستحتاج إلى استخدام TextClock بدلاً من DigitalClock في Android.

خرج الساعة التناظرية والساعة الرقمية