অ্যান্ড্রয়েড - স্টাইলিং সিক বার


229

আমি একটি সন্ধান বারটি স্টাইল করতে চেয়েছিলাম যা নীচের চিত্রের মতো দেখাচ্ছে।

এখানে চিত্র বর্ণনা লিখুন

ডিফল্ট সিকবারটি ব্যবহার করে আমি এরকম কিছু পাব:

এখানে চিত্র বর্ণনা লিখুন

সুতরাং আমার যা প্রয়োজন তা হল কেবল রঙ পরিবর্তন করা। আমার কোনও অতিরিক্ত শৈলীর দরকার নেই। এটি করার জন্য কোনও সোজা ফরোয়ার্ড অ্যাপ্রোচ আছে কি আমার কাস্টম অঙ্কনযোগ্য তৈরি করা উচিত?

আমি কাস্টমসটি তৈরির চেষ্টা করেছি, তবে উপরে দেখানো মত সঠিকটি পাই না। কাস্টম অঙ্কনযোগ্য ব্যবহার করার পরে, আমি যা পাই তা নীচের মত দেখাচ্ছে:

এখানে চিত্র বর্ণনা লিখুন

আমার যদি কাস্টমটি তৈরি করতে হয় তবে দয়া করে কীভাবে অগ্রগতির লাইনের প্রস্থ এবং আকারটি হ্রাস করতে হবে তার পরামর্শ দিন।

আমার কাস্টম বাস্তবায়ন:

background_fill.xml:

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <gradient
        android:angle="90"
        android:centerColor="#FF555555"
        android:endColor="#FF555555"
        android:startColor="#FF555555" />

    <corners android:radius="1dp" />

    <stroke
        android:width="1dp"
        android:color="#50999999" />
    <stroke
        android:width="1dp"
        android:color="#70555555" />

</shape>

progress_fill.xml

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <gradient
        android:angle="90"
        android:centerColor="#FFB80000"
        android:endColor="#FFFF4400"
        android:startColor="#FF470000" />

    <corners android:radius="1dp" />

    <stroke
        android:width="1dp"
        android:color="#50999999" />
    <stroke
        android:width="1dp"
        android:color="#70555555" />

</shape>

progress.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@android:id/background"
        android:drawable="@drawable/background_fill"/>
    <item android:id="@android:id/progress">
        <clip android:drawable="@drawable/progress_fill" />
    </item>

</layer-list>

thumb.xml

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval" >

    <gradient
        android:angle="270"
        android:endColor="#E5492A"
        android:startColor="#E5492A" />

    <size
        android:height="20dp"
        android:width="20dp" />

</shape>

seekbar:

<SeekBar
        android:id="@+id/seekBarDistance"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="88dp"
        android:progressDrawable="@drawable/progress"
        android:thumb="@drawable/thumb" >
    </SeekBar>

40
একটি ওয়ার্কিং সিকবার শৈলীর পরিবর্তনের উদাহরণ এক্সডি প্রদর্শনের জন্য ধন্যবাদ। (ইন্টারনেটে খুব বেশি নয়)।
হেলিন ওয়াং

উত্তর:


297

আমি অ্যান্ড্রয়েড উত্স কোড থেকে অঙ্কনযোগ্য এবং এক্সএমএল বের করব এবং এর রঙকে লাল করে তুলব। এমডিপিআই ড্রয়যোগ্যদের জন্য এটি কীভাবে সম্পন্ন করেছি তার উদাহরণ এখানে রয়েছে:

কাস্টম red_scrubber_control.xml(পুনরায় / অঙ্কনযোগ্য যোগ করুন):

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

    <item android:drawable="@drawable/red_scrubber_control_disabled_holo" android:state_enabled="false"/>
    <item android:drawable="@drawable/red_scrubber_control_pressed_holo" android:state_pressed="true"/>
    <item android:drawable="@drawable/red_scrubber_control_focused_holo" android:state_selected="true"/>
    <item android:drawable="@drawable/red_scrubber_control_normal_holo"/>
</selector>

কাস্টম: red_scrubber_progress.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@android:id/background"
        android:drawable="@drawable/red_scrubber_track_holo_light"/>
    <item android:id="@android:id/secondaryProgress">
        <scale
            android:drawable="@drawable/red_scrubber_secondary_holo"
            android:scaleWidth="100%" />
    </item>
    <item android:id="@android:id/progress">
        <scale
            android:drawable="@drawable/red_scrubber_primary_holo"
            android:scaleWidth="100%" />
    </item>

</layer-list>

তারপরে অ্যান্ড্রয়েড উত্স কোড থেকে প্রয়োজনীয় অঙ্কনযোগ্য অনুলিপি করুন, আমি এই লিঙ্কটি থেকে নিয়েছি

প্রতিটি এইচডিপিআই, এমডিপিআই, এক্সএইচডিপিআইয়ের জন্য এই অঙ্কনগুলি অনুলিপি করা ভাল। উদাহরণস্বরূপ আমি কেবল এমডিপিআই ব্যবহার করি:

তারপরে ফটোশপটি নীল থেকে লাল রঙে পরিবর্তন করুন:

red_scrubber_control_disabled_holo.png: red_scrubber_control_disabled_holo

red_scrubber_control_focused_holo.png: red_scrubber_control_focused_holo

red_scrubber_control_normal_holo.png: red_scrubber_control_normal_holo

red_scrubber_control_pressed_holo.png: red_scrubber_control_pressed_holo

red_scrubber_primary_holo.9.png: red_scrubber_primary_holo.9

red_scrubber_secondary_holo.9.png: red_scrubber_secondary_holo.9

red_scrubber_track_holo_light.9.png: red_scrubber_track_holo_light.9

বিন্যাসে সেকবার যুক্ত করুন:

<SeekBar
    android:id="@+id/seekBar1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:progressDrawable="@drawable/red_scrubber_progress"
    android:thumb="@drawable/red_scrubber_control" />

ফলাফল:

এখানে চিত্র বর্ণনা লিখুন


অ্যান্ড্রু, দুর্দান্ত উত্তরের জন্য আপনাকে ধন্যবাদ। আমি এই নিয়ে একটি সমস্যা করছি। ব্যবহার করার সময় red_scrubber_controlথাম্ব জন্য অঙ্কনযোগ্য, আমি একটি ক্র্যাশ মধ্যে চালানো। যদি নির্বাচকটিতে সমস্ত অঙ্কনযোগ্য একই হয় তবে এটি ভাল কাজ করে, তবে আমি যদি সেগুলির মধ্যে একটি পরিবর্তন করি তবে আমার Resources$NotFoundException: File .../red_scrubber_control.xml from drawaable resource ID...কোনও ধারণা পাওয়া যায়?
কার্ল

2
উপস। দেখা যাচ্ছে এটি স্ট্যাকওভারফ্লো . com/ প্রশ্নস / /6669 66 29 66 / এর সাথে সম্পর্কিত ছিল । আমি যে নতুন চিত্রটি যুক্ত করার চেষ্টা করছিলাম তা দুর্ঘটনাক্রমে 2KB এর পরিবর্তে 37MB ছিল ...
কার্ল

@dimenপর্দার উপর ভিত্তি করে থাম্বের আকার নির্ধারণের জন্য কী কী ব্যবহার করতে হবে?
Si8

1
@ সিকনি 8 আপনি মান ফোল্ডারের জন্য সাধারণ, বৃহত্তর, এক্সলারেজ, ডাব্লু বা ডাব্লু প্যারামিটারের ভিত্তিতে বিভিন্ন স্ক্রিন আকারের জন্য বিভিন্ন মাত্রা নির্ধারণ করতে পারেন। তারপরে আপনার লেআউট, স্টাইল বা থিমে কেবলমাত্র এই মাত্রাটি ব্যবহার করুন। এই লিঙ্কটি দেখুন
এন্ড্রু

1
অ্যান্ড্রয়েড হলো কালার জেনারেটরের লিঙ্কের জন্য ধন্যবাদ। এটা খুব সহায়ক।
গাছগুলি

66

আমার উত্তর অন্দ্রেস বালিজ লাজ্থা থেকে অনুপ্রাণিত হয়েছে এটি xML ফাইল ছাড়াই কাজ করতে দেয়

seekBar.getProgressDrawable().setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);
seekBar.getThumb().setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);

অগ্রগতির ডায়লগের রঙ বদলে গেল কিন্তু থাম্বসের রঙ হয়নি .. কেন?
যোনাতন নীড়

7
কোডে এটি করার দরকার নেই এবং লেয়ার লিস্ট এবং ড্রয়যোগ্য ইত্যাদি তৈরি করতে না চাইলে আপনি সিকবারের এক্সএমএল এ এটিও করতে পারেন android:progressTint="@color/my_color" android:thumbTint="@color/another_color"
ডাভলফার ৮৩

59

আপনি যদি একই বারটি চান তবে লালতে চান তবে আপনি প্রোগ্রামার হিসাবে পোর্টারডাফ রঙিন ফিল্টার যুক্ত করতে পারেন। প্রগ্রেসবার বেস ক্লাসের পদ্ধতিগুলির মাধ্যমে আপনি প্রতিটি আঁকতে সক্ষম হয়ে উঠতে পারেন । তারপরে একটি রঙিন ফিল্টার সেট করুন ।

mySeekBar.getProgressDrawable().setColorFilter(new PorterDuffColorFilter(srcColor, PorterDuff.Mode.MULTIPLY));

যদি পোর্টার ডাফ ফিল্টারের মাধ্যমে ওয়ান্ট রঙের সমন্বয় করা না যায় তবে আপনি নিজের রঙ ফিল্টার নির্দিষ্ট করতে পারেন ।


3
নিশ্চিত না যেহেতু কোন এসডিকে, প্রলি ২১, তবে আপনি যদি একই আইকনটি কেবল ভিন্ন রঙ করতে চান তবে কেবল রং.এক্সএমএলে "colorAccent" রঙ যুক্ত করুন এবং এটি ব্যবহার করবে
টিবিবি

57

অ্যান্ড্রয়েড seekbar কাস্টম উপাদান শৈলী, অন্যান্য seekbar কাস্টমাইজেশন জন্য http://www.zoftino.com/android-seekbar-and-custom-seekbar-examples

<style name="MySeekBar" parent="Widget.AppCompat.SeekBar">
    <item name="android:progressBackgroundTint">#f4511e</item>
    <item name="android:progressTint">#388e3c</item>
    <item name="android:colorControlActivated">#c51162</item>
</style>

সিকবার কাস্টম উপাদান শৈলী


2
অ্যান্ড্রয়েড> 21 এর জন্য দুর্দান্ত সমাধান
সল্টনডেপ্পার

4
আপনি কি নিশ্চিত যে colorControlActivatedএটি থাম্বের সঠিক পরামিতি? এটা হওয়া উচিত thumbTint
পিটার নট

21 নীচের এপিআই এর সমাধান কী?
ফয়সাল শায়খ

42

আপনার রঙের সাথে কেবল রঙের এ্যাট্রিবিটগুলি প্রতিস্থাপন করুন

background.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="line">

    <stroke android:width="1dp" android:color="#D9D9D9"/>
    <corners android:radius="1dp" />

</shape>

progress.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
     android:shape="line">

    <stroke android:width="1dp" android:color="#2EA5DE"/>
    <corners android:radius="1dp" />

</shape>

style.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@android:id/background"
        android:drawable="@drawable/seekbar_background"/>
    <item android:id="@android:id/progress">
        <clip android:drawable="@drawable/seekbar_progress" />
    </item>

</layer-list>

thumb.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">

    <size android:height="30dp" android:width="30dp"/>
    <stroke android:width="18dp" android:color="#882EA5DE"/>
    <solid android:color="#2EA5DE" />
    <corners android:radius="1dp" />

</shape>

1
আমি কীভাবে সন্ধানবারে ফাইলগুলি ব্যবহার করব?
মুনগাইহ পিকে

@ রাহুলরাস্তোগি আপনি এই ফাইলগুলি কীভাবে ব্যবহার করেছেন?
নির্বোধের

1
@ এসর্টেড ট্রাইলমিক্স আমি এটি দীর্ঘদিন আগে করেছি। অ্যান্ড্রয়েড: থাম্ব = "@ অঙ্কনযোগ্য / থাম্ব" এবং অ্যান্ড্রয়েডের মধ্যে: বৈশিষ্ট্যগুলি সেট করার চেষ্টা করুন উপরোক্ত স্তর তালিকা অঙ্কনযোগ্য ফাইল সেট করুন ra আপনি চেষ্টা করতে পারেন: mindfiremobile.wordpress.com/2014/05/20/…
রাহুল রাস্তোগি

37

গুগল এসডিকে 21 এ এটি আরও সহজ করে তুলেছে Now

android:thumbTint
android:thumbTintMode
android:progressTint

http://developer.android.com/references/android/widget/AbsSeekBar.html#attr_android:thumbTint http://developer.android.com/references/android/widget/AbsSeekBar.html#attr_android:thumbTintMode


7
অগ্রগতি, খুব।
আফসোসলেস্তে

1
এন্টারপ্রাইজ 21 হিসাবে অ্যান্ড্রয়েডের প্রতিটি UI উপাদানগুলিতে টিন্ট তালিকাগুলি প্রযোজ্য, এটি কীভাবে রঙিন্যাসেন্ট প্রয়োগ হয়।
আফসোসলেস্তে

16

এই সমস্ত উত্তর হ্রাস করা হয়।

2019 সালে এটি আপনার পছন্দের রঙের আপনার seekbar শৈলী সহজ আপনার পরিবর্তন করে ProgressBarএই

<SeekBar
            android:id="@+id/seekBar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:progressTint="#36970f"
            android:thumbTint="#36970f"
            />

আপনার সিকবারের রঙের স্টাইলিং প্রোগ্রামিয়ালি নিম্নলিখিত কোডটি চেষ্টা করুন

        seekBar.getProgressDrawable().setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);
        seekBar.getThumb().setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);

অবহেলিত কেন?
কুলমাইন্ড

কারণ গ্রন্থাগারগুলি পরিবর্তিত হয়েছে
Giannes Mpountouridis

আপনি @Ahamadullah সৈকত (উত্তর দেখতে পারেন stackoverflow.com/a/50074961/2914140 ) অথবা lvguowei.me/post/customize-android-seekbar-color । তারা লাইব্রেরি ব্যবহার করে না এবং এমনকি পুরানো এপিআইয়ের জন্য সিকবার রঙ সেট করে না।
কুলমাইন্ড

11

উপরে (@ অ্যান্ড্রু) এর একটি উল্লেখ করার মতো, কাস্টম সিকবার তৈরি করা এই সাইটের সাথে খুব সহজ - http://android-holo-colors.com/

কেবল সিকবারকে সেখানে সক্ষম করুন, রঙ চয়ন করুন এবং সমস্ত সংস্থান গ্রহণ করুন এবং প্রজেক্টে অনুলিপি করুন। তারপরে এগুলি xML এ প্রয়োগ করুন, উদাহরণস্বরূপ:

  android:thumb="@drawable/apptheme_scrubber_control_selector_holo_light"
  android:progressDrawable="@drawable/apptheme_scrubber_progress_horizontal_holo_light"

10

আউটপুট:

এখানে চিত্র বর্ণনা লিখুন

বিন্যাস ফাইলটিতে:

        <android.support.v7.widget.AppCompatSeekBar
            android:id="@+id/seekBar_bn"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:max="25"
            android:minHeight="10dp"
            android:progress="10"
            android:progressDrawable="@drawable/progress"
            android:thumb="@drawable/custom_thumb" />

অঙ্কনযোগ্য / progress.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@android:id/background"
        android:drawable="@drawable/background_fill"/>
    <item android:id="@android:id/progress">
        <clip android:drawable="@drawable/progress_fill" />
    </item>

</layer-list>

অঙ্কনযোগ্য / background_fill.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:bottom="6dp"
        android:left="-6dp"
        android:right="-6dp"
        android:top="6dp">

        <shape android:shape="rectangle">
            <solid android:color="#888888" />
            <stroke
                android:width="5dp"
                android:color="@android:color/transparent" />
        </shape>
    </item>
</layer-list>

অঙ্কনযোগ্য / progress_fill.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:bottom="6dp"
        android:left="-6dp"
        android:right="-6dp"
        android:top="6dp">

        <shape android:shape="rectangle">
            <solid android:color="@color/myPrimaryColor" />
            <stroke
                android:width="5dp"
                android:color="@android:color/transparent" />
        </shape>
    </item>
</layer-list>

অঙ্কনযোগ্য / custom_thumb.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="oval">
            <solid android:color="@color/myPrimaryColor"/>
            <size
                android:width="22dp"
                android:height="22dp"/>
        </shape>
    </item>
</layer-list>

colors.xml

<color name="myPrimaryColor">#660033</color>

অ্যাপকম্প্যাট সিকবারের অস্তিত্ব জানেন না
পিয়েরে


9
<SeekBar
android:id="@+id/seekBar1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:progressTint="@color/red"
android:thumbTint="@color/red" />

একই মত উত্তর নির্বাচিত। কোনও অঙ্কনযোগ্য ফাইল তৈরি করার দরকার নেই অন্যথায় (


5

ডিফল্টরূপে, অ্যান্ড্রয়েড আপনার স্লাইডারের অগ্রগতির রঙের সাথে মিলবে

`<item name="colorAccent">`

আপনার শৈলীর মূল্য । xml । তারপরে, কাস্টম স্লাইডার থাম্ব ইমেজ সেট করতে, আপনার সিকবার এক্সএমএল লেআউটের ব্লকে এই কোডটি ব্যবহার করুন :

android:thumb="@drawable/slider"

5
LayerDrawable progressDrawable = (LayerDrawable) mSeekBar.getProgressDrawable();

// progress bar line *progress* color
Drawable processDrawable = progressDrawable.findDrawableByLayerId(android.R.id.progress);

// progress bar line *background* color
Drawable backgroundDrawable = progressDrawable.findDrawableByLayerId(android.R.id.background);

// progress bar line *secondaryProgress* color
Drawable secondaryProgressDrawable = progressDrawable.findDrawableByLayerId(android.R.id.secondaryProgress);
processDrawable.setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);

// progress bar line all color
mSeekBar.getProgressDrawable().setColorFilter(Color.BLUE, PorterDuff.Mode.SRC_IN);

// progress circle color
mSeekBar.getThumb().setColorFilter(Color.GREEN, PorterDuff.Mode.SRC_IN);

4

APIs <21 (এবং> = 21) এর জন্য আপনি @ আহমাদউল্লাহ সৈকত বা https://www.lvguowei.me/post/customize-android-seekbar-color/ এর উত্তর ব্যবহার করতে পারেন ।

এখানে চিত্র বর্ণনা লিখুন

<SeekBar
    android:id="@+id/seekBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:maxHeight="3dp"
    android:minHeight="3dp"
    android:progress="50"
    android:progressDrawable="@drawable/seek_bar_ruler"
    android:thumb="@drawable/seek_bar_slider"
    />

অঙ্কনযোগ্য / seek_bar_ruler.xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background">
        <shape android:shape="rectangle">
            <solid
                android:color="#94A3B3" />
            <corners android:radius="2dp" />
        </shape>
    </item>
    <item android:id="@android:id/progress">
        <clip>
            <shape android:shape="rectangle">
                <solid
                    android:color="#18244D" />
                <corners android:radius="2dp" />
            </shape>
        </clip>
    </item>
</layer-list>

অঙ্কনযোগ্য / seek_bar_slider.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval"
    >

    <solid android:color="#FFFFFF" />
    <stroke
        android:width="4dp"
        android:color="#18244D"
        />
    <size
        android:width="25dp"
        android:height="25dp"
        />
</shape>

3

যদি আপনি অ্যান্ড্রয়েড এসডিকে সরবরাহিত ডিফল্ট সিকবার ব্যবহার করেন তবে তাদের রঙ পরিবর্তনের একটি সহজ উপায়। শুধু /res/values/colors.xML এর ভিতরে color.xML এ যান এবং রঙআসেন্ট পরিবর্তন করুন।

<resources>
    <color name="colorPrimary">#212121</color>
    <color name="colorPrimaryDark">#1e1d1d</color>
     <!-- change below line -->
    <color name="colorAccent">#FF4081</color>
</resources>

2

আমি পরিবর্তন background_fill.xml

<?xml version="1.0" encoding="UTF-8"?>
  <shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line" >
<size android:height="1dp" />
<gradient
    android:angle="0"
    android:centerColor="#616161"
    android:endColor="#616161"
    android:startColor="#616161" />
<corners android:radius="0dp" />
<stroke
    android:width="1dp"
    android:color="#616161" />
<stroke
    android:width="1dp"
    android:color="#616161" />
</shape>

এবং progress_fill.xml

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line" >
<size android:height="1dp" />
<gradient
    android:angle="0"
    android:centerColor="#fafafa"
    android:endColor="#fafafa"
    android:startColor="#fafafa" />
<corners android:radius="1dp" />
<stroke
    android:width="1dp"
    android:color="#cccccc" />
<stroke
    android:width="1dp"
    android:color="#cccccc" />
 </shape>

পটভূমি এবং অগ্রগতি 1dpউচ্চতা করতে।


2

সিক বারের রঙ পরিবর্তন করার সহজ উপায় ...

 <ProgressBar
            android:id="@+id/progress"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:theme="@style/Progress_color"/>

স্টাইল: অগ্রগতি_ রঙ

 <style name="Progress_color">
    <item name="colorAccent">@color/white</item> <!-- Whatever color you want-->
</style>

জাভা শ্রেণি পরিবর্তন অগ্রগতিযোগ্য ()

seek_bar.getProgressDrawable().setColorFilter(getResources().getColor(R.color.white), PorterDuff.Mode.MULTIPLY);

1

যদি আপনি অ্যান্ড্রয়েড সংস্থানগুলি দেখে থাকেন তবে সন্ধান বারটি চিত্রগুলি ব্যবহার করে।

আপনাকে একটি অঙ্কনযোগ্য করতে হবে যা 10px বলার জন্য উপরে এবং নীচে স্বচ্ছ এবং কেন্দ্র 5px লাইন দৃশ্যমান।

সংযুক্ত চিত্রটি দেখুন। আপনাকে এটিকে নাইনপ্যাচে রূপান্তর করতে হবে।

এখানে চিত্র বর্ণনা লিখুন


আপনি কি কিছু পোস্টের জন্য একই পরামর্শ করতে পারেন?
চেলামালামুদি

আমি যে ভাল লিঙ্কগুলি পেয়েছি তার মধ্যে একটি - mokasocial.com/2011/02/…
সাগর ওয়াঘমারে

রবিবার জি আকিনসেটের সমাধান কাজ করে, নাইনপ্যাচ ব্যবহার করার দরকার নেই
হেলিন ওয়াং

0

যারা ডেটা বাইন্ডিং ব্যবহার করেন তাদের জন্য:

  1. নিম্নলিখিত ক্ল্যাটিক পদ্ধতিটি কোনও শ্রেণিতে যুক্ত করুন

    @BindingAdapter("app:thumbTintCompat")
    public static void setThumbTint(SeekBar seekBar, @ColorInt int color) {
        seekBar.getThumb().setColorFilter(color, PorterDuff.Mode.SRC_IN);
    }
  2. app:thumbTintCompatআপনার সিকবারে অ্যাট্রিবিউট যুক্ত করুন

    <SeekBar
           android:id="@+id/seek_bar"
           style="@style/Widget.AppCompat.SeekBar"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           app:thumbTintCompat="@{@android:color/white}"
    />

এটাই. এখন আপনি যে app:thumbTintCompatকোনও সঙ্গে ব্যবহার করতে পারেন SeekBar। অগ্রগতি রঙটি একইভাবে কনফিগার করা যেতে পারে।

দ্রষ্টব্য: এই পদ্ধতিটি প্রাক-ললিপপ ডিভাইসের সাথেও তুলনীয়।


0

@ আরনাভ-রাও দ্বারা উত্তরের ছোট সংশোধন:

থাম্বটি সঠিকভাবে রঙ হয়েছে কিনা তা নিশ্চিত করতে, ব্যবহার করুন:

<style name="MySeekBar" parent="Widget.AppCompat.SeekBar">
    <item name="android:progressBackgroundTint">@color/colorBgTint</item>
    <item name="android:progressTint">@color/colorProgressTint</item>
    <item name="android:thumbTint">@color/colorThumbTint</item>
</style>

এখানে অ্যান্ড্রয়েড: থাম্বটিন্ট আসলে "থাম্ব" রঙ করে


0

এই টিউটোরিয়ালটি খুব ভাল পরীক্ষা করে দেখুন

https://www.lvguowei.me/post/customize-android-seekbar-color/

সরল:

<SeekBar
                android:id="@+id/seekBar"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:max="100"
                android:maxHeight="3dp"
                android:minHeight="3dp"
                android:progressDrawable="@drawable/seekbar_style"
                android:thumbTint="@color/positive_color"/>

তারপরে একটি স্টাইল ফাইল:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:id="@android:id/background">
        <shape android:shape="rectangle" >
            <solid
                android:color="@color/positive_color" />
        </shape>
    </item>
    <item android:id="@android:id/progress">
        <clip>
            <shape android:shape="rectangle" >
                <solid
                    android:color="@color/positive_color" />
            </shape>
        </clip>
    </item>
</layer-list>

0

আমি সন্ধানবারের জন্য একটি স্টাইল তৈরি করতে এবং তারপরে একটি থিমটিতে শৈলী যুক্ত করতে চেয়েছিলাম যাতে কোনও স্টাইলকে ওভাররাইড করার অনুমতি দেওয়ার পরেও আমি এটি একটি সম্পূর্ণ থিমটিতে প্রয়োগ করতে পারি। আমি যা করেছি তা এখানে:

<!-- Blue App Theme -->
    <style name="AppTheme.Blue" parent="BaseTheme.Blue">        
        <item name="android:seekBarStyle">@style/SeekbarStyle.Blue</item>
        <item name="seekBarStyle">@style/SeekbarStyle.Blue</item> <!--This is essential for some devices, e.g. Samsung-->
</style>

<!-- Slider Styles -->
<style name="SeekbarStyle.Blue" parent="Widget.AppCompat.SeekBar">
        <item name="android:progressBackgroundTint">@color/material_blue_a700_pct_30</item>
        <item name="android:thumbTint">@color/material_blue_a700</item>
        <item name="android:thumbTintMode">src_in</item>
        <item name="android:progressTint">@color/material_blue_a700</item>
</style>

<style name="SeekbarStyle.Green" parent="Widget.AppCompat.SeekBar">
        <item name="android:progressBackgroundTint">@color/material_green_a700_pct_30</item>
        <item name="android:thumbTint">@color/material_green_a700</item>
        <item name="android:thumbTintMode">src_in</item>
        <item name="android:progressTint">@color/material_green_a700</item>
</style>

উপরেরগুলি স্যামসাং সহ 21++ ডিভাইসগুলির জন্য থিম সিকবার শৈলীটিকে নীল করে দেয় (যার জন্য অ্যান্ড্রয়েড ছাড়াও সন্ধানবার্স স্টাইলের প্রয়োজন: সিকবার বারস্টাইল; নিশ্চিত নয় তবে আমি কেন এই সমস্যাটি প্রথম দেখেছি)। আপনি যদি সমস্ত সন্ধানকারীদের থিম শৈলীতে রাখতে চান এবং কেবল কয়েকটি উইজেটে সবুজ সন্ধানবার শৈলীটি প্রয়োগ করেন তবে আপনি যে উইজেটটি চান সেটিতে নিম্নলিখিতটি যুক্ত করুন:

<SeekBar
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:theme="@style/AppTheme.Green"/>

0

উপাদান উপাদান লাইব্রেরি সংস্করণ 1.2.0 এর সাহায্যে আপনি নতুন Sliderউপাদানটি ব্যবহার করতে পারেন ।

 <com.google.android.material.slider.Slider
       android:valueFrom="0"
       android:valueTo="300"
       android:value="200"
       android:theme="@style/slider_red"
       />

আপনি ডিফল্ট রঙকে এমন কিছু ব্যবহার করে ওভাররাইড করতে পারেন:

  <style name="slider_red">
    <item name="colorPrimary">#......</item>
  </style>

এখানে চিত্র বর্ণনা লিখুন

অন্যথায় আপনি রঙ বা রঙ চয়নকারীকে সংজ্ঞায়িত করতে এই বৈশিষ্ট্যগুলি বিন্যাসে ব্যবহার করতে পারেন:

   <com.google.android.material.slider.Slider
       app:activeTrackColor="@color/...."
       app:inactiveTrackColor="@color/...."
       app:thumbColor="@color/...."
       />

অথবা আপনি একটি কাস্টম শৈলী ব্যবহার করতে পারেন:

 <style name="customSlider" parent="Widget.MaterialComponents.Slider">
    <item name="activeTrackColor">@color/....</item>
    <item name="inactiveTrackColor">@color/....</item>
    <item name="thumbColor">@color/....</item>
  </style>

অফিসিয়াল ডক্স বলছে যে এটি এখনও পরিকল্পিত। অন্য কোন বিকল্প আছে?
তেজস্পটেল

@tejaspatel উত্তরে সরকারী উপাদানটির লিঙ্ক রয়েছে। 1 ম সংস্করণটি এখন 1.2.0-alpha01 এ প্রকাশিত হয়েছে।
গ্যাব্রিয়েল মারিয়োটি

-1

আপনি এটি এইভাবে তৈরি করতে পারেন:

<SeekBar
    android:id="@+id/redSeekBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:progressDrawable="@color/red"
    android:maxHeight="3dip"/>

আশা করি এটি সাহায্য করবে!


1
আমি মনে করি না আপনি যে রঙটি অঙ্কনযোগ্য খুঁজছেন সেখানে আপনি এমন কোনও রঙ ব্যবহার করতে পারবেন
ল্যানস্লট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.