কীভাবে স্বচ্ছ ইমেজবটন থাকবে: অ্যান্ড্রয়েড


493
<ImageButton android:id="@+id/previous"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/media_skip_backward"
android:background="@drawable/transparent"></ImageButton>

এইগুলি আমি একটি স্বচ্ছ ইমেজবটন পাওয়ার চেষ্টা করেছি যাতে এই বোতামগুলি একটি সারফেসভিউতে রাখে। তবে এক্সলিপস, এক্সএমএলে স্বচ্ছ লাইনটি অন্তর্ভুক্ত করার সাথে সাথে আমাকে প্রকল্পে একটি ত্রুটি দেয়।

সাহায্য করুন.


3
কেবলমাত্র একটি পার্শ্ব নোট: আপনার নিজস্ব স্বচ্ছ চিত্রের পরিবর্তে, আপনি কেবলমাত্র @ অ্যান্ড্রয়েড ব্যবহার করতে পারেন: রঙ / স্বচ্ছ - আপনার নিজস্ব কাস্টম স্বচ্ছ চিত্রের প্রয়োজন নেই
ম্যাথিয়াস কনরাডেট

6
দয়া করে নোট করুন যে ইমেজ বোতামটি স্বচ্ছ পটভূমি দিয়ে আপনি বোতাম ক্লিক (এবং সম্ভবত অক্ষম) অবস্থার জন্য একটি ভিজ্যুয়াল প্রতিক্রিয়া সরিয়ে ফেলছেন। এর ফলে ব্যবহারের সামান্য হ্রাস ঘটে।
szeryf

ইমেজবটনটি আসলে সারফেসভিউয়ের উপরে স্থান পেয়েছে তা নিশ্চিত করার জন্য এটি পূর্ববর্তী বাটন.ব্রিংটোফ্রন্ট () কল করাও দরকারী, অন্যথায় এটি এখনও সারফেসভিউয়ের আড়ালে লুকিয়ে থাকতে পারে
জে স্নায়দার

অ্যানড্রয়েড এপিআই বাটন ক্লিক করা বা অন্যান্য রাজ্যের জন্য ভিজ্যুয়াল প্রতিক্রিয়া হারানো ছাড়াই স্বচ্ছ পটভূমি তৈরির জন্য সঠিক বৈশিষ্ট্য সরবরাহ করে! আমার উত্তর নীচে পড়ুন!
lory105

উত্তর:


984

পটভূমির জন্য নাল ব্যবহার করার চেষ্টা করুন ...

android:background="@null"

ধন্যবাদ. এইটা কাজ করে. কেবল চিত্রটি দেখা যায় এবং তার চারপাশের বাক্সটি নয়। তবে আমি কি এই বোতামটি SurfacaView এর উপরে অর্থাৎ ভিডিও পূর্বরূপের উপরে রেখে দিতে পারি? এটা কি সম্ভব? আমি এটা কিভাবে করব?
নমরাথা

1
@ নম্রত SurfaceViewআপনাকে একটি পৃষ্ঠের উপর দিয়ে আপনার বোতামগুলি ব্ল্যাক করার অনুমতি দেবে কিন্তু নোট করুন: "এটি পৃষ্ঠের উপরে বোতামের মতো ওভারলে স্থাপন করতে ব্যবহার করা যেতে পারে, তবে নোট করুন যে পুরো আলফা-মিশ্রিত হওয়ার পরে এটির কার্য সম্পাদনে প্রভাব ফেলতে পারে সারফেস পরিবর্তিত হওয়ার সাথে সংমিশ্রণটি সম্পাদিত হবে " বিকাশকারী.অ্যান্ড্রয়েড
কুইন্টিন রবিনসন

57
নাল ব্যাকগ্রাউন্ড ব্যবহার করা ঠিক নয় !! অ্যানড্রয়েড এপিআই বাটন ক্লিক করা বা অন্যান্য রাজ্যের জন্য ভিজ্যুয়াল প্রতিক্রিয়া হারানো ছাড়াই স্বচ্ছ পটভূমি তৈরির জন্য সঠিক বৈশিষ্ট্য সরবরাহ করে! আমার উত্তর নীচে পড়ুন!
lory105

1
উপরে এবং নীচে উল্লিখিত হিসাবে বোতামের পটভূমি নালায় সেট করা ভাল ধারণা নয়। উপযুক্ত বৈশিষ্ট্য ব্যবহার করে উত্তরগুলি আরও অনেক ভাল, বা ক্লিক করার সময় অ-ক্লিক করা এবং উপযুক্ত প্রতিক্রিয়ার জন্য স্বচ্ছ সহ সঠিক নির্বাচক তৈরি করুন।
দামিয়ান ওয়ালকাকাক

এটি আমাকে একটি ত্রুটি দিয়েছে .. তবে এটি আমার জন্য কাজ করেছে অ্যান্ড্রয়েড: ব্যাকগ্রাউন্ড = "@ অ্যান্ড্রয়েড: রঙ / স্বচ্ছ"
হুয়ান মেন্ডিজ

303

কোনও ট্রান্সপ্যান্ট বা নূতন লেআউট ব্যবহার করবেন না কারণ তারপরে বোতামটি (বা জেনেরিক দৃষ্টিভঙ্গি) ক্লিকের উপর আর হাইলাইট করবে না !!!

আমার একই সমস্যা ছিল এবং শেষ পর্যন্ত আমি সমস্যাটি সমাধানের জন্য অ্যান্ড্রয়েড এপিআই থেকে সঠিক বৈশিষ্ট্যটি পেয়েছি । এটি যে কোনও দৃশ্যে প্রযোজ্য।

বোতামের নির্দিষ্টকরণে এটি ব্যবহার করুন:

android:background="?android:selectableItemBackground"

4
এটির জন্য এপিআই 11 দরকার - আপনি বন্যের 24% ফোন মুছে ফেলুন (জানুয়ারী 2014)
শন নিল

8
দেখে মনে হচ্ছে সমর্থন লাইব্রেরিটি ব্যবহার করে, এপিআই> = 11 এর প্রয়োজনীয়তা স্ট্যাকওভারফ্লো // প্রশ্নগুলি
কোথাও কোথাও

15
একটি বৃত্তাকার রিপল প্রভাবের জন্য, ব্যবহার করুনandroid:background="?android:selectableItemBackgroundBorderless"
ম্যাটিউস গন্ডিম

7
ভাগ্যক্রমে 2019 এর হিসাবে, এটি বন্যের মধ্যে প্রায় 0% ফোন সরিয়ে দেয়।
ব্যবহারকারী 1032613

140

আপনি একটি স্বচ্ছ রঙ ব্যবহার করতে পারেন:

android:background="@android:color/transparent"

9
@ গেইকেল, @ অ্যাডাম, আপনার সচেতন হওয়া উচিত যে শর্ত ছাড়াই ব্যবহার করা হলে এই বৈশিষ্ট্যটি বেশ বিপজ্জনক কারণ এটি অন্য স্বচ্ছ স্তর যুক্ত করবে যা স্ক্রিনে আঁকতে পারে এবং ফলস্বরূপ পিক্সেলগুলিকে ওভারড্রন পিক্সেল দেবে এবং আপনার অ্যাপ্লিকেশনটি ধীর করবে। এটি পরীক্ষা করার জন্য, আপনি এটি ব্যবহার করতে পারেন Developer option: Show GPU overdrawএবং একটি পটভূমি সেট করতে @nullএবং এর মধ্যে পার্থক্যটি দেখতে পারেন @android:color/transparent
amirlazarovich

এটি সেরা এবং কার্যকর উত্তর। :)
হুয়ান

112

ব্যাকগ্রাউন্ড সেট করা "@null"বোতামটি ক্লিক করার পরে কোনও প্রভাব ফেলবে না। এটি একটি ভাল পছন্দ হবে।

style="?android:attr/borderlessButtonStyle"

পরে আমি এটি ব্যবহার করে দেখতে পেলাম

android:background="?android:attr/selectableItemBackground"

এটিও একটি ভাল সমাধান। এবং আপনি নিজের শৈলীতে এই বৈশিষ্ট্যটি উত্তরাধিকারী করতে পারেন।


আমার পক্ষে কাজ করেনি এবং দ্বিতীয়টি ক্র্যাশ করে অ্যাপটি তৈরি করেছে। সম্ভবত আমি ভুল করেছি কিন্তু আমি কী জানি না।
ইয়ান্নিস দ্রান

5
এপিআই স্তরের প্রয়োজন 11. উত্স
জেসন রবিনসন

2
এটা সঠিক উত্তর. এছাড়াও অ্যাপকম্প্যাক্ট ব্যবহার করে, এই উত্তরের সাথে রিপল ইফেক্টটি পুরোপুরি কাজ করে এবং এপিআই 19-এ সাধারণ চাপযুক্ত প্রভাবটি বক্সের বাইরে চলে আসে। অ্যান্ড্রয়েড: ব্যাকগ্রাউন্ড = "? অ্যান্ড্রয়েড: অ্যাটর / নির্বাচনযোগ্য আইটেমব্যাকগ্রাউন্ড" উজ্জ্বল!
রাফায়েউ

ক্লিক করা অবস্থায় এই সমাধানটির selectableItemBackgroundবোতাম পরিবর্তন করার রাজ্য তৈরি করার একটি অতিরিক্ত সুবিধা রয়েছে। অন্যান্য সমাধানগুলি বোতামটি ক্লিকযোগ্য নয়।
ইগোরগানাপলস্কি

14

রান সময়, আপনি নিম্নলিখিত কোড ব্যবহার করতে পারেন

btn.setBackgroundDrawable(null);

8
btn.setBackgroundColor (Color.TRANSPARENT); সমস্ত এপিআই স্তরে কাজ করে
আলবিবি

সেটব্যাকগ্রাউন্ডড্রেইবলটি সেটবিট গ্রাউন্ড কালার অবহিত করা হয়েছে উপরে উল্লিখিত পরামর্শ অনুসারে
ভাস্কার

এই পদ্ধতিটি এখন
অবচয় করা

11

আমি বিশ্বাস করি গ্রহণযোগ্য উত্তরটি হওয়া উচিত: android:background="?attr/selectableItemBackground"

এটি @ লরি 105 এর উত্তরের মতো তবে এটি সর্বাধিক সামঞ্জস্যের জন্য সমর্থন লাইব্রেরি ব্যবহার করে ( android:সমতুল্য কেবলমাত্র API>> 11 এর জন্য উপলব্ধ)


8

এই লাইনটি সরান:

android:background="@drawable/transparent">

এবং আপনার ক্রিয়াকলাপ শ্রেণিতে

ImageButton btn = (ImageButton)findViewById(R.id.previous);
btn.setAlpha(100);

আপনি আলফা স্তর 0 থেকে 255 পর্যন্ত সেট করতে পারেন

o এর অর্থ স্বচ্ছ এবং 255 অর্থ অস্বচ্ছ।


কিন্তু এটি কী এই সারফেসভিউয়ের শীর্ষে থাকা বোতামটি সক্ষম করে?
নমরাথা

5
এই উত্তরটি ভুল এবং বিভ্রান্তিকর কারণ এটি পুরো বোতামটি আধা-অস্বচ্ছ করে তোলে। কোড থেকে এটি করতে ইচ্ছুক হলে সেটব্যাকগ্রাউন্ড পদ্ধতিতে নাল পাস করুন। setAlpha আপনার যা প্রয়োজন তা নয়।
কুইন্টিন উইলিসন

এটি পুরো দর্শনটিকে স্বচ্ছ করে তোলে।
রাজ

5

স্বচ্ছ রঙ কোডটি ব্যবহার করা সবচেয়ে ভাল উপায়

android:background="#00000000"

যে কোনও জিনিসকে স্বচ্ছ করতে রঙিন কোড # 00000000 ব্যবহার করুন


4
@android:color/transparentহার্ড কোডেড মান ব্যতীত।
ফ্রেড

1
না, রেফারেন্সযুক্ত মানগুলি অগ্রাধিকার দেওয়া উচিত ... তবে আইএমও, @ ফ্রেড, এমনকি @android:সরাসরি লেআউটে রেফারেন্স রাখা একটি হার্ডকোডযুক্ত মান হিসাবে বিবেচনা করা হয় কারণ আপনি যদি এটি পরিবর্তন করতে চান তবে এটি সন্ধানের জন্য আপনাকে এখনও বিন্যাসে সার্ফ করতে হবে। আমি এর মতো কিছু ঘোষণা <item name="something">@android:color/transparent</item>করব এবং বিন্যাসে আমার নিজস্ব মানটি ব্যবহার করব যাতে আমি এটি সহজেই আমার রিসোর্স.এক্সএমএল ফাইলে এটি খুঁজে পেতে পারি এবং বিন্যাসে এটি অনুসন্ধান না করে এটিকে পরিবর্তন করতে পারি
ক্লিফ বার্টন

2

ব্যবহার করুন ImageView... এটির ডিফল্টরূপে স্বচ্ছ পটভূমি রয়েছে ...


3
তবে এটি কোনও বোতাম নয়
Moesio

2
আপনি একটি বাটন হিসাবে একটি চিত্রভিউ ব্যবহার করতে পারেন। আপনার জাভা কোডগুলিতে আপনি কেবল চিত্রবিউকে পূর্ববর্তী = (চিত্রদর্শন) ফাইন্ড ভিউআইআইডি (আর.আইডি.প্রিরি) বলেছেন; এবং তারপরে मागील.setOnClickListener (নতুন অনক্লিকলিস্টারিয়ার {সার্বজনীন শূন্য অনক্লিক (/ * আপনি যখন চিত্রকল্পের সাথে স্পর্শ করেন তখন * /)}); ভাল খবর!
মেরিঙ্কে

2

আমি ইতিমধ্যে পটভূমিতে কিছু যুক্ত করেছিলাম তাই, এই জিনিসটি আমার পক্ষে কাজ করেছে:

   android:backgroundTint="@android:color/transparent"

(অ্যান্ড্রয়েড স্টুডিও ৩.৪.১)

সম্পাদনা : কেবলমাত্র 21 এবং ততোধিকেরের এন্ড্রয়েড এপিআই স্তরে কাজ করে। সামঞ্জস্য জন্য, পরিবর্তে এটি ব্যবহার করুন

   android:background="@android:color/transparent"


1

এক্সএমএলে @ নাল হিসাবে ইমেজবাটনের পটভূমি সেট করুন

<ImageButton android:id="@+id/previous"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/media_skip_backward"
android:background="@null"></ImageButton>

1

"@ নুল" ব্যবহার করুন । এটা আমার জন্য কাজ করেছে।

<ImageButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:srcCompat="@drawable/bkash"
    android:id="@+id/bid1"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:background="@null" />


0

এটি প্রগতিগতভাবে স্বচ্ছ হিসাবে ব্যাকগ্রাউন্ডের রঙ সেট করেছে

 ImageButton btn=(ImageButton)findViewById(R.id.ImageButton01);
 btn.setBackgroundColor(Color.TRANSPARENT);

0

প্রোগ্রামগতভাবে এটি দ্বারা করা যেতে পারে:

image_button.setAlpha(0f) // to make it full transparent
image_button.setAlpha(0.5f) // to make it half transparent
image_button.setAlpha(0.6f) // to make it (40%) transparent
image_button.setAlpha(1f) // to make it opaque

আমি ডাউনভোটার নই, তবে এটি পুরো পটভূমিকে স্বচ্ছ করে তোলে, কেবল পটভূমি নয়।
ট্রেভর

@ আমি জানি যে আমি জানি, এবং ওপি তার জিজ্ঞাসায় জিজ্ঞাসা করছে, "একটি স্বচ্ছ ইমেজবটন"।
মুহাম্মদ রেফায়াত

1
আপনি একেবারে ঠিক বলেছেন, ওপি স্বচ্ছ বোতামটি চেয়েছে। তবে তার উদাহরণ থেকে বোঝা যায় যে তিনি সম্ভবত একটি স্বচ্ছ পটভূমির (যেমন android:background="@drawable/transparent") একটি বোতাম চেয়েছিলেন । যে কোনও উপায়ে, আমি কেবল ডাউনটোটের সম্ভাব্য কারণের পরামর্শ দিচ্ছি; আমি বলছি না এটা ন্যায়সঙ্গত।
ট্রেভর

1
@ ভাল ভাল, এটি কারণ হতে পারে, যে কোনও ভাবে ধন্যবাদ।
মুহাম্মাদ রেফায়াত


-2
<ImageButton
    android:id="@+id/previous"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/media_skip_backward">
</ImageButton>

আমি একটি স্বচ্ছ ব্যবহৃত pngজন্য ImageButton, এবং ImageButtonকাজ করেন।


এটি কোনও ভাল সমাধান নয় .. অ্যান্ড্রয়েড এপিআই দ্বারা সরবরাহিত সঠিক বৈশিষ্ট্যটি ব্যবহার করুন! আমার উত্তরওয়ালা পড়ুন।
lory105

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