English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تحقيق تأثير النطاق الديناميكي الثابت في Android

دعنا نرى النتيجة:

الخطوة الأولى: إضافة مكتبة الاعتماد

1. قم بتعديل ملف gradle الخاص بالمشروع كما يلي

allprojects {
  repositories {
   ...
   maven { url "https://jitpack.io" }
  }
 }

2. إضافة مكتبة الاعتماد الأحدث، الإصدار الأحدث مثلما هو موضح أدناه، قم بتعديل النسخة في النهاية (لأنني أحياناً أنسى تعديل readme عند تحديث الإصدار)

dependencies {
   compile 'com.github.Brioal:BrioalSetting:1.0'
   //// على سبيل المثال، إذا كان الإصدار الأحدث هو 1.1، فكل ما يجب القيام به هو تحويل 1.0 إلى 1.1 لاستخدام الإصدار الأحدث
 }

الخطوة الثانية: استخدام

1. ملف التخطيط XML

في عملية الاستخدام الفعلي، تم اكتشاف أن الحدثين اللذين يتحركان سيفقدان فعاليتهما إذا تم دمجهما مع مكونات أخرى، لم يتم العثور حتى الآن على كيفية حل المشكلة في الكود، ولم تجد أي فائدة من تعيين focus، والحل المؤقت هو إضافة بنية امتدادية للعنصر دون تضمين أي مكونات أخرى، مثلما هو موضح أدناه:

<LinearLayout>
  android:id="@+id/layout"
android:layout_centerInParent="true"
  android:layout_width="match_parent"
  android:layout_height="wrap_content">
  <com.brioal.rangeseek.view.RangeBar
   android:id="@+id/main_container"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:layout_centerInParent="true"/>
 </LinearLayout>

2. كود الإعداد

mRangeBar = (RangeBar) findViewById(R.id.main_container);
   //添加数据源
  final List<RangeEntity> list = new ArrayList<>();
  //要显示的文字和实际的值,分别是String 和 Object类型
  list.add(new RangeEntity("15℃", 15));
  list.add(new RangeEntity("18℃", 18));
  list.add(new RangeEntity("21℃", 21));
  list.add(new RangeEntity("24℃", 24));
  list.add(new RangeEntity("27℃", 27));
  list.add(new RangeEntity("30℃", 30));
  //设置数据源
  mRangeBar.setValues(list);
  //添加范围改变监听器
  mRangeBar.addOnRangeChangedListener(new OnRangeChangedListener() {
   @Override
   public void selected(int startIndex, int endIndex) {
   //获取到的是起始和终止的数据在List中所对应的下标
    mTvMin.setText(list.get(startIndex).getValue() + ";");
    mTvMax.setText(list.get(endIndex).getValue() + ";");
   }
  });

3. الطرق المتاحة للوحة العرض المخصصة

الطريقة وظيفة
void addOnRangeChangedListener(OnRangeChangedListener listener) تعيين مستمع الحدث
void setLineColor(int lineColor) تعيين لون الخط
void setLineWidth(int lineWidth) تعيين عرض الخط
void setCircleColor(int circleColor) تعيين لون الحافة للنقطة
void setCircleRadius(int circleRadius) تعيين قطر النقطة
void setCircleWidth(int circleWidth) تعيين عرض النقطة
void setCenterColor(int centerColor) تعيين لون الملء للنقطة المحددة
void setPointColor(int pointColor) تعيين لون الملء للإشارة
void setStartIndex(int startIndex) تعيين مؤشر البداية المحدد
int getStartIndex() الحصول على مؤشر البداية المحدد
void setEndIndex(int endIndex) تعيين مؤشر النهاية
int getEndIndex() الحصول على مؤشر النهاية

الخاتمة

هذا هو نهاية محتوى هذا المقال، آمل أن يوفر هذا المقال بعض المساعدة في تعلمكم أو عملكم، إذا كان لديكم أي أسئلة، يمكنكم ترك تعليق للتفاعل.

توصياتك