অ্যান্ড্রয়েডে পটভূমির অঙ্কনযোগ্য প্রোগ্রামিয়ালি মুছে ফেলুন


128

আমি @drawable/bgপ্রোগ্রামিয়ালি অঙ্কনযোগ্য পটভূমি অপসারণ করতে চাই । এটা করার কোন উপায় আছে?

বর্তমানে, আমার লেআউটে নিম্নোক্ত এক্সএমএল রয়েছে:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    android:id="@+id/widget29"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:background="@drawable/bg">

</RelativeLayout>

উত্তর:


316

এটা চেষ্টা কর

RelativeLayout relative = (RelativeLayout) findViewById(R.id.widget29);
relative.setBackgroundResource(0);

রিলেটিভলআউট ডকুমেন্টেশনে সেটব্যাকগ্রাউন্ড ফাংশনগুলি পরীক্ষা করুন


4
আমি এই ত্রুটিটি পেয়েছি: পদ্ধতির সেটব্যাকগ্রাউন্ডআর রিসোর্স (ইনট) টাইপ ভিউতে যুক্তিগুলির জন্য প্রযোজ্য নয় (নাল)
ইউকেডাটাজিইক

2
যদি এটি কাজ করে না: আপনি ব্যাকগ্রাউন্ডের সম্পত্তিটি ব্যবহার করেছেন এবং অ্যান্ড্রয়েড: এসসিআর ব্যবহার করেছেন কিনা তা পরীক্ষা করে দেখুন!
ক্রিস কনওয়ে

3
সেটব্যাকগ্রাউন্ডড্রেইবল এখন অবচয় করা হয়েছে। নীচে @ সুরজের উত্তর এখন আরও ভাল।
আনন্দ সাইনাথ

6
এপিআই 16? এপি 8 এর জন্য কিছু আছে?
ব্যবহারকারী 1940676

1
সেটব্যাকগ্রাউন্ডআর রিসোর্স (0) ব্যবহার করুন। যেমনটি উত্তর দিয়েছেন অ্যাডামস্টেলম্যাসজেকেক। ,
জার ই আহমের

70

setBackgroundResource(0)সেরা বিকল্প। ডকুমেন্টেশন থেকে :

প্রদত্ত উত্সটিতে ব্যাকগ্রাউন্ড সেট করুন। পটভূমিটি সরাতে উত্সটিতে একটি অঙ্কনযোগ্য অবজেক্ট বা 0 উল্লেখ করা উচিত ।

এটি সর্বত্র কাজ করে, কারণ এটি এপিআই 1 এর পরে।

setBackgroundএপিআই 16 এ অনেক পরে যুক্ত হয়েছিল, সুতরাং আপনার minSdkVersion16 এর চেয়ে কম হলে এটি কাজ করবে না ।


2
আপনাকে ধন্যবাদ, পুরোপুরি আমাকে 4 ঘন্টা হেড বেজে যাওয়ার পরে বাঁচিয়েছে। আপনি অনক্লিক ইভেন্টে গতিশীলভাবে একটি টগলড বোতাম (২ টি আঁকতে পছন্দযোগ্য) তৈরি করার ক্ষেত্রে এটি খুব কার্যকর তবে আপনার টগলযুক্তগুলি গ্রহণের আগে এটির জন্য একটি দৃশ্যমান বোতামের প্রয়োজন (কারণ ক্লিক ইভেন্টটি হওয়া পর্যন্ত কিছুই দেখাবে না, তাই যখন এটি ঘটে তখন) না, আপনি setBackgroundResource(0)আপনার আগের "সেট" বোতামটি আঁকতে সক্ষম মুছে ফেলতে ব্যবহার করতে পারেন)।
আজুরস্পট

2
এটি চয়ন করা উত্তর হওয়া উচিত কারণ এটি মেমরি পরিচালনা এবং এপিআই স্তর সমর্থন উভয় ক্ষেত্রেই সেরা সমাধান।
গ্রেগটকাজাপ

47

এটি আমাকে ব্যাকগ্রাউন্ডের রঙ অপসারণ করতে সহায়তা করেছে, আশা করি এটি কারওর পক্ষে সহায়তা করে। setBackgroundColor(Color.TRANSPARENT)


3
অঙ্কনযোগ্যদের প্যাডিং থাকতে পারে, তাই আপনি পটভূমি সরিয়ে ফেললে আপনারও প্যাডিং অপসারণ করা দরকার।
মিশা কিসিয়েল

1
সেটব্যাকগ্রাউন্ডআর রিসোর্স (0) হ'ল সর্বোত্তম বিকল্প কারণ এটি পটভূমিটিকে পুরোপুরি সরিয়ে দেয়, ওভারড্রু হ্রাস করে।
মিলান

4

এই কোড ব্যবহার করে দেখুন:

imgView.setImageResource(android.R.color.transparent); 

এছাড়াও এই এক কাজ করে:

imgView.setImageResource(0); 

তবে সাবধান হন যে এটি কোনও কাজ করে না:

imgView.setImageResource(null); 

4

আমি এই কোডটি অ্যান্ড্রয়েড 4+ এ চেষ্টা করে দেখছি :

view.setBackgroundDrawable(0);

টাইপ ভিউতে সেটব্যাকগ্রাউন্ডড্রেইবল (ড্রয়যোগ্য) পদ্ধতিটি আর্গুমেন্টের জন্য প্রযোজ্য নয় (
অন্ত

2

এই পদ্ধতিতে সেরা পারফরম্যান্স:

imageview.setBackgroundResource(R.drawable.location_light_green);

এটা ব্যবহার কর.



0

ব্যবহার করুন setBackgroundColor(Color.TRANSPARENT)স্বচ্ছ, অথবা ব্যবহার পটভূমি সেট করতে setBackgroundColor(0)Color.TRANSPARENTরঙ শ্রেণীর ডিফল্ট বৈশিষ্ট্য এখানে । এটা ঠিক কাজ করবে।


0

আমার একটি কেস দৃশ্য আছে এবং আমি উপরে থেকে সমস্ত উত্তর চেষ্টা করেছি, তবে সর্বদা পুরানোটির উপরে নতুন চিত্র তৈরি করা হয়েছিল। আমার জন্য যে সমাধানটি কাজ করেছিল তা হ'ল:

imageView.setImageResource(R.drawable.image);

0

চমৎকার উত্তরগুলি ছাড়াও, আপনি যদি এক্সএমএল এর মাধ্যমে এটি অর্জন করতে চান তবে আপনি যুক্ত করতে পারেন:

android:background="@android:color/transparent

আপনার দৃষ্টিতে


0

প্রথমত, আপনাকে এক্সএমএল লেআউটে লিখতে হবে:

android:visibility="invisible" <!--or set VISIBLE-->

তারপরে জাভা ব্যবহার করে এটি দেখানোর জন্য এটি ব্যবহার করুন:

myimage.setVisibility(SHOW); //HIDE

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