ইমেজবটনে ম্যাটারিয়াল ডিজাইনের টাচ রিপল প্রয়োগ করবেন?


96

আমার একটি ইমেজবটন আছে যা ক্লিক করার সাথে সাথে কোনও টাচ অ্যানিমেশনের সাথে প্রতিক্রিয়া জানায় না কারণ এটি ললিপপের নিয়মিত বোতামগুলির তুলনায় একটি স্থির চিত্র যাগুলি রিপল ইফেক্টের সাথে নির্মিত। আমি চিত্রটিতে উপাদান ডিজাইন রিপল টাচ এফেক্ট যুক্ত করতে চাই তবে এটি কার্যকর করার কোনও উপায় খুঁজে পাবে না। আমি চিত্রটির উপরে একটি রঙিন ফিল্টার সেট করতে পারি তবে এটি রিপল প্রভাব নয় effect আমি কী করতে চেষ্টা করছি তার একটি উদাহরণ যখন আপনি গুগল প্লে মিউজিকে অ্যালবামের কভার চিত্রটি ধরে রাখেন এবং একটি ছায়া ppেউ পুরো চিত্রটি জুড়ে চলে।

উত্তর:


266

আরও ভাল ফলাফলের জন্য:

<ImageButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@android:drawable/ic_button"
    android:background="?attr/selectableItemBackgroundBorderless"
/>

7
এটি আরও ভাল উত্তর - বৃত্তাকার অনুভূতির পাশাপাশি উত্তেজনাপূর্ণ প্রভাব প্রদান, আপনাকে ধন্যবাদ।
এলিয়টএম

4
এটি কি রঙিন অঙ্কনযোগ্যগুলির সাথে কাজ করে? আমার জন্য ব্যাকগ্রাউন্ড প্রয়োগ করেও কোনও স্পর্শ প্রভাব দৃশ্যমান। আমার থিম থিম.এপকম্প্যাট.লাইট.ডর্ক অ্যাকশনবার থেকে প্রসারিত হচ্ছে, এটি কি কোনও সমস্যা হতে পারে?
নাম প্রদর্শন করুন

12
পরিবর্তে পটভূমি এটি সূক্ষ্মভাবে কাজ করে এমন সমস্ত দর্শনগুলির জন্য অগ্রভাগ ব্যবহার করুন।
গোপী সিজি

4
কেউ কি এটি করার এবং পটভূমির রঙ পরিবর্তন করার জন্য কোনও উপায় খুঁজে পেয়েছে? ব্যাকগ্রাউন্ডটিন্ট পরিবর্তন করা কাজ করে না এবং "? অ্যাট্রি / সিলেক্টেবল আইটেমব্যাকগ্রাউন্ডবর্ডারলেস" এ ফোরগ্রাউন্ড সেট করে না বাটনটিতে একটি বাজে প্যাডিং দেয়।
সেভ

4
যদি আপনি একটি গা .় পটভূমি ব্যবহার করেন তবে লহরীটি যথেষ্ট পরিমাণে দৃশ্যমান নাও হতে পারে। আপনি এটি যুক্ত করে হালকা রঙিন রিপলটিতে পরিবর্তন করেছেন android:theme="@style/Base.ThemeOverlay.AppCompat.Dark"(<API 21 তে কাজ করে)। অন্যান্য সমাধানের জন্য stackoverflow.com/q/28605031/599535 দেখুন ।
লাইফস

28

আপনি কেবল নিজের ইমেজবটনে একটি ব্যাকগ্রাউন্ড যুক্ত করতে পারেন:

<ImageButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@android:drawable/btn_dialog"
    android:background="?android:attr/selectableItemBackground" />

4
অ্যান্ড্রয়েড ব্যবহার করুন: অগ্রভূমি = "? অ্যাট্রি / নির্বাচনযোগ্য
আইটেমব্যাকগ্রাউন্ডবোর্ডারলেস

@ এমএফকিউ এটি অ্যান্ড্রয়েড থেকে কীভাবে আলাদা? অ্যাট্রয়েড / নির্বাচনযোগ্য আইটেমব্যাকগ্রাউন্ড
কিলার

4
@ কিলার নির্বাচনযোগ্য আইটেমব্যাকগ্রাউন্ডবর্ডারলেস = কোনও সীমানা ছাড়াই একটি বৃত্তাকার রিপল দিন যেমন আপনি সরঞ্জামদণ্ডের আইকনে ক্লিক করেন তবে নির্বাচনযোগ্য আইটেমব্যাকগ্রাউন্ডটি আয়তক্ষেত্রের রিপল দেয়, আপনি দীর্ঘক্ষণ এই অঙ্কনগুলি প্রয়োগকারী আইকনে ক্লিক করলে পার্থক্যটি দেখতে পাবেন
এমএফকিউ

6

আমি শ্যাডরিন ( এখানে ) এবং নিকোলারস ( এখানে ) এর কাছ থেকে ভাল উত্তর পেয়েছি ।

তাদের উত্তরগুলির মধ্যে পার্থক্য হ'ল এটি ?attr/selectableItemBackgroundBorderlessআপনাকে দিতে পারে android.view.InflateException, তাই ?android:attr/selectableItemBackgroundসমাধানটি is

এফডব্লিউআইডাব্লু, আমি জানি না কেন ব্যতিক্রম ঘটে, কারণ প্রথম উত্তরটি আমার সমস্ত পুরানো প্রকল্পগুলিতে কার্যকর হয়েছিল, তবে আমার সাম্প্রতিক প্রকল্পে হয়নি (সম্ভবত অ্যাপ্লিকেশন থিম = android:Theme.Material?)।

যে আশ্চর্যজনক ঘটনাটি ঘটছিল তা হ'ল রিপল এফেক্টটি প্রদর্শিত হলেও এটি ইমেজবটনকে ছাড়িয়ে গেছে, সুতরাং সমাধানটি হ'ল:

  • android:foreground="?android:attr/selectableItemBackgroundBorderless"পরিবর্তে ব্যবহার করতেandroid:background="?android:attr/selectableItemBackgroundBorderless"

আশা করি আপনি যদি একই মুখোমুখি হন তবে এটি আপনাকে সহায়তা করবে।


3

আপনার যদি ইতিমধ্যে একটি পটভূমি থাকে এবং এটি পরিবর্তন করতে না চান তবে অগ্রভাগ ব্যবহার করুন;

<ImageButton
    android:layout_width="60dp"
    android:layout_height="match_parent"
    android:background="@drawable/preview_in_4k_background"
    android:src="@drawable/ic_full_screen_24px"
    android:layout_marginLeft="5dp"
    android:foreground="?attr/selectableItemBackgroundBorderless"
    android:layout_column="2"/>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.