অ্যান্ড্রয়েড লেআউট উপাদানটির ব্যাকগ্রাউন্ড রঙ সেট করা


198

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

আমি বিন্যাস যেমন ছবিতে দেখানো তৈরি করেছেন এবং হেডার একটি হল TextViewএকটি RelativeLayout। এখন আমি এর পটভূমির রঙ পরিবর্তন RelativeLayoutকরতে চাই, তবে আমি কীভাবে তা বুঝতে পারি না।

আমি জানি যে আমি এক্সএমএল ফাইলটিতে ট্যাগটিতে android:backgroundসম্পত্তি সেট করতে RelativeLayoutপারি, তবে আমি এটিতে কী সেট করব? আমি একটি নতুন রঙের সংজ্ঞা দিতে চাই যা আমি একাধিক জায়গায় ব্যবহার করতে পারি। এটি কি drawableবা একটি string?

অতিরিক্তভাবে আমি আশা করব যে গ্রহগ্রহ অ্যান্ড্রয়েড ইউআই ডিজাইনারের মধ্যে থেকে খুব সহজেই এখানে আসার উপায় রয়েছে যা আমি অবশ্যই অনুপস্থিত?

আমি বর্তমানে কিছুটা হতাশ, কারণ এটি এমন একটি কার্যকলাপ হওয়া উচিত যা বেশ কয়েকটি ক্লিকের সাথে সঞ্চালিত হয় with সুতরাং যে কোনও সহায়তা খুব প্রশংসা করা হয়। :)

অ্যান্ড্রয়েড ক্রিয়াকলাপ নকশা


28
ডান পাশের গ্রাফটি আঁকতে আপনি কোন সফ্টওয়্যার ব্যবহার করেছেন?
14:34

8
@ লুকাশ: আমি চিত্রগুলি আঁকিনি, যেমন আমি প্রশ্নগুলিতে উল্লেখ করেছি, এটি অ্যান্ড্রয়েড ইউআই ডিজাইনের স্লাইডগুলির একটি সেট থেকে। প্রশ্নের লিঙ্কটি দেখুন।
বার্জার ফ্রেইন্ড-হানসেন

উত্তর:


280

আপনি ব্যবহার করতে পারেন সহজ রঙ সম্পদ , সাধারণত ভিতরে নিদিষ্ট res/values/colors.xml

<color name="red">#ffff0000</color>

এবং এর মাধ্যমে এটি ব্যবহার করুন android:background="@color/red"। এই রঙটি অন্য কোথাও ব্যবহার করা যেতে পারে, যেমন একটি পাঠ্যের রঙ হিসাবে। এটি একইভাবে এক্সএমএলে রেফারেন্স করুন, বা কোডের মাধ্যমে এটি পান getResources().getColor(R.color.red)

আপনি কোনও অঙ্কনযোগ্য সংস্থানকে পটভূমি হিসাবেও ব্যবহার করতে পারেন , এর জন্য android:background="@drawable/mydrawable"ব্যবহার করুন (এর অর্থ 9 প্যাচ ড্রইবল, সাধারণ বিটম্যাপস, আকৃতি আঁকতে সক্ষম, ..)।


6
ধন্যবাদ একটি মোহন মত কাজ করে। আপনি কি আমাকে সেই রেফারেন্সটিতে নির্দেশ করতে পারেন যেখানে আমার এটি পড়া উচিত ছিল?
বজর্কে ফ্রেইন্ড-হ্যানসেন

6
উহ প্রকৃতপক্ষে: না, কেবলমাত্র ডক্স অনুসন্ধান করেছে, এটি বেশ মানসম্পন্ন অ্যান্ড্রয়েড স্টাফ, তবে বাস্তবে নথিবদ্ধ কোথাও নেই বলে মনে হয়। ডেভ সাইটের টিউটোরিয়াল বা এপিআই নমুনাগুলি এগুলি ব্যবহার করে না। অ্যান্ড্রয়েড ডকটিতে কিছু বৈশিষ্ট্য উপস্থিত থাকলে কিছুটা অভাব হয়। আমি মনে করি কিছু বাহ্যিক টিউটোরিয়ালে আমি দুর্ঘটনাক্রমে এটি বাছাই করেছি। সাধারণত এপিআই নমুনাগুলি এবং নমুনা প্রকল্পগুলি ব্রাউজ করা ভাল ধারণা। আপনি ANDROID_SDK\samplesফোল্ডারের অভ্যন্তরে কোডটি সন্ধান করতে পারেন (বিভিন্ন অ্যান্ড্রয়েড সংস্করণের জন্য)। পুরো এপিআই নমুনা অ্যাপ্লিকেশনটি প্রতিটি এমুলেটর দৃষ্টান্তে ইনস্টল করা হয়।

2
এছাড়াও সবেমাত্র ইউআই ডিজাইনার পরীক্ষা করে দেখুন। সহজ কিছু পাওয়া যায় না। তবে আমি যাইহোক এক্সএমএলে হাতে হাতে জিনিসগুলি লেখার পরামর্শ দিই। ডিজাইনার সম্প্রতি অনেক উন্নতি করেছে, তবে এটি এখনও আমার মতে ব্যবহারযোগ্য নয়। কেবলমাত্র কয়েকটি বিকল্প সীমাবদ্ধ নয়, লেআউটটি কখনও কখনও কোনও আসল ডিভাইসে সম্পূর্ণ আলাদা দেখায় (বিশেষত যখন রেফারেন্সড ড্রয়যোগ্য রিসোর্সগুলি ব্যবহার করার সময় correctly সেগুলি সঠিকভাবে মাপানো যায় না বা এমনকি আমার অভিজ্ঞতায় এগুলি প্রদর্শিত হয় না) । আপনার ডিভাইসে বা কোনও এমুলেটরটিতে আপনার বিন্যাসগুলি পরীক্ষা করুন।

1
কিছু "ডিফল্ট" রঙের জন্য, আপনি এই বাক্য
গঠনটি

1
গেটআরসোর্সগুলি ()। getColor () এখন অবচয় করা হয়েছে।
রোহিত বান্দিল

90

উপরের উত্তরগুলি দুর্দান্ত you আপনি যদি চান তবে আপনি এই প্রোগ্রামের মতোও যেতে পারেন

প্রথমত, আপনার বিন্যাসে একটি আইডি থাকা উচিত। +idরেস / লেআউট / *। এক্সএমএলে নিম্নলিখিত লাইনটি লিখে এটি যুক্ত করুন

<RelativeLayout ...
...
android:id="@+id/your_layout_id"
...
</RelativeLayout>

তারপরে, আপনার জাভা কোডে, নিম্নলিখিত পরিবর্তনগুলি করুন।

RelativeLayout rl = (RelativeLayout)findViewById(R.id.your_layout_id);
rl.setBackgroundColor(Color.RED);

এগুলি ছাড়াও, যদি আপনার বর্ণগুলি color.xML এ সংজ্ঞায়িত করা থাকে তবে আপনি প্রোগ্রামিয়ালিটি করতেও পারেন:

rl.setBackgroundColor(ContextCompat.getColor(getContext(), R.color.red));

24
আপনি যদি এটি গতিশীল চান তবে আমার ধারণা আপনি XML ব্যবহার করতে পারবেন না।
গিলারমো গুটিয়েরেজ

1
+1 এর জন্য আমার স্ট্যাটাস ফ্ল্যাগ অনুসারে রানটাইম এ পরিবর্তন করা দরকার; আমি color.TRANSPARENT ধ্রুবক ব্যবহার করে মূল রঙ ফিরে পেতে সক্ষম হয়েছি।
জ্যাক

10
@ বার্জারফ্রেন্ড-হানসেন তিনি অন্যান্য উত্তরগুলি স্বীকার করে এই প্রোগ্রামেটিক সমাধান সরবরাহ করেন। ডাউনভোট যোগ্য নয়
অনুবিয়ান নুব

4
@ বার্জারফ্রেন্ড-হানসেন, প্রশ্নটি কীভাবে রঙটি সংজ্ঞায়িত করবেন না, সঠিকভাবে পড়ুন কীভাবে পটভূমি সেট করবেন to এবং তাই যদি প্রশ্ন যে হয়। আমি এটি স্বীকার করেছিলাম এবং বলেছি "আপনিও এর মতো যেতে পারেন" .... যাতে সে যেতে পারে বা নাও পারে। আপনি এটি দেখতে পাচ্ছেন এমন এটি অন্যকেও সহায়তা করতে পারে। পারবে তুমি ??
অ্যান্ড্রয়েড খুনি

7
কেবলমাত্র @ বার্জারফ্রেন্ড-হানসেন থেকে বিয়োগফলকে ক্ষতিপূরণ দেওয়ার জন্য
রাহুল

42

আপনার রঙের জন্য আপনি android:background="#DC143C"বা অন্য কোনও আরজিবি মান ব্যবহার করতে পারেন । এটি এখানে ব্যবহার হিসাবে আমার কোনও সমস্যা নেই


5
-1 কারণ আমি স্পষ্টভাবে লিখেছি যে "আমি একাধিক জায়গায় ব্যবহার করতে পারি এমন একটি নতুন রঙের সংজ্ঞা দিতে চাই", কারণ আমি রঙের মানকে হার্ডকোড করতে চাইনি, তবে এটি বেশ কয়েকটি জায়গায় ব্যবহার করতে পারি এমন একটি উত্স হিসাবে সংজ্ঞায়িত করেছি।
বার্জার ফ্রেইন্ড-হানসেন

6
@ জিএমএসএফ: ওহ এটি কাজ করে তবে এটি প্রশ্নের উত্তর দেয় না।
বার্জার ফ্রেন্ড-হানসেন

21

দ্য

res/values/colors.xml.

<color name="red">#ffff0000</color>
android:background="@color/red"

উদাহরণ আমার জন্য কাজ করে না, কিন্তু

android:background="#(hexidecimal here without these parenthesis)"

বৈশিষ্ট্য হিসাবে আপেক্ষিক বিন্যাস উপাদানটিতে আমার জন্য কাজ করেছে।


10
আপনি কি কোনও উত্স ট্যাগ দিয়ে রঙ ট্যাগটি মোড়ানো ভুলে গেছেন?
মুছে ফেলা হবে

19

আপনি যদি কোনও রং দ্রুত পরিবর্তন করতে চান (এবং আপনার হেক্স নম্বরগুলি মুখস্থ নেই) অ্যান্ড্রয়েডের কয়েকটি প্রিসেট রঙ রয়েছে তবে আপনি এটির মতো অ্যাক্সেস করতে পারবেন:

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

আপনি চয়ন করতে পারেন এমন 15 টি রঙ রয়েছে যা দ্রুত জিনিসগুলি পরীক্ষার জন্য খুব সুন্দর এবং আপনার অতিরিক্ত ফাইল সেট আপ করার দরকার নেই।

মান / রং.এক্সএমএল ফাইল সেট আপ করা এবং উপরে বর্ণিত স্ট্রেট হেক্স ব্যবহার করা এখনও কার্যকর হবে।


4

4 সম্ভাব্য উপায়, আপনার প্রয়োজনীয় একটি ব্যবহার করুন।

1. কোটলিন

val ll = findViewById<LinearLayout>(R.id.your_layout_id)
ll.setBackgroundColor(ContextCompat.getColor(this, R.color.white))

2. ডেটা বাইন্ডিং

<LinearLayout
    android:background="@{@color/white}"

বা আরও দরকারী বিবৃতি-

<LinearLayout
    android:background="@{model.colorResId}"

3. এক্সএমএল

<LinearLayout
    android:background="#FFFFFF"

<LinearLayout
    android:background="@color/white"

4. জাভা

LinearLayout ll = (LinearLayout) findViewById(R.id.your_layout_id);
ll.setBackgroundColor(ContextCompat.getColor(this, R.color.white));

2

অ্যান্ড্রয়েড স্টুডিও ২.১.২ (বা সম্ভবত পূর্বে) আপনাকে রঙিন চাকা থেকে বাছাই করতে দেবে:

অ্যান্ড্রয়েড স্টুডিওতে রঙিন চাকা

আমি আমার লেআউটে নিম্নলিখিত যোগ করে এটি পেয়েছি:

android:background="#FFFFFF"

তারপরে আমি এফএফএফএফএফএফ রঙটি ক্লিক করেছি এবং প্রদর্শিত লাইটবালায় ক্লিক করেছি।


1

Kotlin

linearLayout.setBackgroundColor(Color.rgb(0xf4,0x43,0x36))

অথবা

<color name="newColor">#f44336</color>

-

linearLayout.setBackgroundColor(ContextCompat.getColor(vista.context, R.color.newColor))

0

সর্বোপরি উত্তরগুলি স্থির। আমি ভেবেছিলাম আমি একটি গতিশীল উত্তর সরবরাহ করব। দুটি ফাইল যা সিঙ্ক করতে হবে তা হ'ল foo.xmlলেআউটের সাথে activity_bar.javaসম্পর্কিত এবং এটি জাভা শ্রেণীর সাথে সম্পর্কিত R.layout.foo

ইন foo.xmlসমগ্র লেআউট জন্য একটি আইডি সেট করুন:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/foo" .../>

এবং এর মধ্যে activity_bar.javaরঙ সেট করুন onCreate():

public class activity_bar extends AppCompatActivty {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.foo);

            //Set an id to the layout
        RelativeLayout currentLayout = 
                    (RelativeLayout) findViewById(R.id.foo);

        currentLayout.setBackgroundColor(Color.RED);
        ...
    }
    ...
}

আশা করি এটা কাজে লাগবে.

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