সম্পাদনা (22.06.2016):
আমি মূল প্রতিক্রিয়া পোস্ট করার পরে অ্যাপকম্প্যাট লাইব্রেরি উপাদান বোতামগুলিকে সমর্থন করা শুরু করে। এই পোস্টে আপনি উত্থাপিত এবং সমতল বোতামগুলির সহজ বাস্তবায়ন দেখতে পাবেন।
আসল উত্তর:
যেহেতু অ্যাপকম্প্যাটটি বোতামটি সমর্থন করে না তবে আপনি ব্যাকগ্রাউন্ড হিসাবে এক্সএমএল ব্যবহার করতে পারেন। এটি করার জন্য আমি অ্যান্ড্রয়েডের উত্স কোডটি দেখেছি এবং স্টাইলিং উপাদান বোতামের জন্য সম্পর্কিত ফাইলগুলি পেয়েছি।
1 - উত্স থেকে উপাদান বোতামের আসল বাস্তবায়নটি দেখুন।
অ্যান্ড্রয়েড উত্স কোডে btn_default_matory.xML দেখুন ।
আপনি ফাইলগুলি আপনার প্রকল্পের অঙ্কনযোগ্য-v21 ফোল্ডারে অনুলিপি করতে পারেন। তবে রঙিন অ্যাটরটি এখানে স্পর্শ করবেন না। আপনার যে ফাইলটি পরিবর্তন করতে হবে তা হ'ল দ্বিতীয় ফাইল।
অঙ্কনযোগ্য-v21 / custom_btn.xml
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?attr/colorControlHighlight">
<item android:drawable="@drawable/btn_default_mtrl_shape" />
</ripple>
2 - মূল উপাদান বোতামের আকৃতি পান
আপনি বুঝতে পারেন যে এই আঁকাগুলির অভ্যন্তরে এমন একটি আকার রয়েছে যা আপনি উত্স কোডের এই ফাইলটিতে খুঁজে পেতে পারেন ।
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetLeft="@dimen/button_inset_horizontal_material"
android:insetTop="@dimen/button_inset_vertical_material"
android:insetRight="@dimen/button_inset_horizontal_material"
android:insetBottom="@dimen/button_inset_vertical_material">
<shape android:shape="rectangle">
<corners android:radius="@dimen/control_corner_material" />
<solid android:color="?attr/colorButtonNormal" />
<padding android:left="@dimen/button_padding_horizontal_material"
android:top="@dimen/button_padding_vertical_material"
android:right="@dimen/button_padding_horizontal_material"
android:bottom="@dimen/button_padding_vertical_material" />
</shape>
3 - উপাদান বোতামের মাত্রা অর্জন করা
এবং এই ফাইলটিতে আপনি ফাইলটি থেকে কিছু মাত্রা ব্যবহার করেছেন যা আপনি এখানে খুঁজে পেতে পারেন । আপনি পুরো ফাইলটি অনুলিপি করতে পারেন এবং আপনার মান ফোল্ডারে রেখে দিতে পারেন। সমস্ত বোতামে একই আকারের (যা উপাদান বোতামে ব্যবহৃত হয়) প্রয়োগ করার জন্য এটি গুরুত্বপূর্ণ
4 - পুরানো সংস্করণগুলির জন্য অন্য একটি আঁকুনযোগ্য ফাইল তৈরি করুন
পুরানো সংস্করণগুলির জন্য আপনার একই নামের সাথে অন্য আঁকতে হবে। আমি রেফারেন্সিংয়ের পরিবর্তে আইটেমগুলিকে সরাসরি ইনলাইন দিচ্ছি। আপনি সেগুলি উল্লেখ করতে চাইতে পারেন। তবে আবার, সবচেয়ে গুরুত্বপূর্ণ বিষয়টি হ'ল ম্যাটেরিয়াল বোতামের আসল মাত্রা।
অঙ্কনযোগ্য / custom_btn.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- pressed state -->
<item android:state_pressed="true">
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetLeft="@dimen/button_inset_horizontal_material"
android:insetTop="@dimen/button_inset_vertical_material"
android:insetRight="@dimen/button_inset_horizontal_material"
android:insetBottom="@dimen/button_inset_vertical_material">
<shape android:shape="rectangle">
<corners android:radius="@dimen/control_corner_material" />
<solid android:color="@color/PRESSED_STATE_COLOR" />
<padding android:left="@dimen/button_padding_horizontal_material"
android:top="@dimen/button_padding_vertical_material"
android:right="@dimen/button_padding_horizontal_material"
android:bottom="@dimen/button_padding_vertical_material" />
</shape>
</inset>
</item>
<!-- focused state -->
<item android:state_focused="true">
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetLeft="@dimen/button_inset_horizontal_material"
android:insetTop="@dimen/button_inset_vertical_material"
android:insetRight="@dimen/button_inset_horizontal_material"
android:insetBottom="@dimen/button_inset_vertical_material">
<shape android:shape="rectangle">
<corners android:radius="@dimen/control_corner_material" />
<solid android:color="@color/FOCUSED_STATE_COLOR" />
<padding android:left="@dimen/button_padding_horizontal_material"
android:top="@dimen/button_padding_vertical_material"
android:right="@dimen/button_padding_horizontal_material"
android:bottom="@dimen/button_padding_vertical_material" />
</shape>
</inset>
</item>
<!-- normal state -->
<item>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetLeft="@dimen/button_inset_horizontal_material"
android:insetTop="@dimen/button_inset_vertical_material"
android:insetRight="@dimen/button_inset_horizontal_material"
android:insetBottom="@dimen/button_inset_vertical_material">
<shape android:shape="rectangle">
<corners android:radius="@dimen/control_corner_material" />
<solid android:color="@color/NORMAL_STATE_COLOR" />
<padding android:left="@dimen/button_padding_horizontal_material"
android:top="@dimen/button_padding_vertical_material"
android:right="@dimen/button_padding_horizontal_material"
android:bottom="@dimen/button_padding_vertical_material" />
</shape>
</inset>
</item>
</selector>
ফলাফল
ললিপপ ডিভাইসে আপনার বোতামটি রিপল প্রভাব ফেলবে। পুরানো সংস্করণগুলি রিপল ইফেক্ট বাদে ঠিক একই বোতামে থাকবে। তবে যেহেতু আপনি বিভিন্ন রাজ্যের জন্য অঙ্কনযোগ্য সরবরাহ করেছেন তাই তারা স্পর্শ ইভেন্টগুলিতে (পুরানো উপায় হিসাবে) সাড়াও দেবে।