কিভাবে একটি ইমেজবাটনে পাঠ্যটি প্রদর্শন করবেন?


127

আমার একটি আছে ImageButtonএবং আমি এটিতে একটি পাঠ্য এবং একটি চিত্র দেখাতে চাই। তবে যখন আমি এমুলেটরটিতে চেষ্টা করি:

<ImageButton 
    android:text="OK" 
    android:id="@+id/buttonok" 
    android:src="@drawable/buttonok"
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" />

আমি ছবিটি পাই কিন্তু পাঠ্য ছাড়াই। আমি কীভাবে পাঠ্যটি প্রদর্শন করতে পারি? আমাকে সাহায্য করুন!

উত্তর:


271

আপনি ব্যবহার করতে না পারায় android:textআমি আপনাকে একটি সাধারণ বোতাম ব্যবহার করার এবং একটি যৌগিক ড্রয়াবল ব্যবহার করার পরামর্শ দিচ্ছি। এই ক্ষেত্রে:

<Button 
    android:id="@+id/buttonok" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"
    android:drawableLeft="@drawable/buttonok"
    android:text="OK"/>

আপনি ব্যবহার করে যেখানেই থাকুন না কেন আপনি চান অঙ্কনযোগ্য লাগাতে পারেন: drawableTop, drawableBottom, drawableLeftঅথবা drawableRight

হালনাগাদ

একটি বোতামের জন্য এটি খুব সুন্দর কাজ করে। পুটিং android:backgroundঠিক আছে!

<Button
    android:id="@+id/fragment_left_menu_login"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/button_bg"
    android:text="@string/login_string" />

আমি এই সমস্যাটি পেয়েছি এবং নিখুঁতভাবে কাজ করছি।


2
এই বিকল্পটি সর্বোত্তমভাবে কাজ করে, যদি না আপনার কোনও ধরণের পাগল দেখাচ্ছে বোতাম বিন্যাসের প্রয়োজন হয়, যেমন দুটি টেক্সটভিউ দ্বারা সজ্জিত একটি চিত্রের মতো। আমি প্রথমে উইজেট.বটন হিসাবে সংজ্ঞায়িত একটি বিন্যাস বস্তুটি চেষ্টা করেছি, তারপরে একটি চিত্রদর্শন এবং একটি পাঠ্যদর্শন রেখেছি, তবে এটির পরে এবং উপরে বোতামের লেআউটটি পরিমাপের সময় আমি প্রায় 30%, লেআউটের সময়কালে 50% এবং 15 টি সংরক্ষণ করেছি আমার ফ্রেমলআউটে আঁকানোর সময়কালে -20%, এবং 38 টি অবজেক্ট থেকে 26 এ নেমে গেছে that's এটি বেশ যথেষ্ট পরিমাণে সঞ্চয়ী।
ইভান আর।

3
@ শিম ড্রইটেবল শীর্ষে আঁকাটি বোতামের শীর্ষে রাখবে, নীচে অঙ্কনযোগ্য রাইট ইত্যাদি
ক্রিশ্চিয়ান

1
@ রেনানবন্দিরা হ্যাঁ, ব্যবহারের setCompoundDrawables*()পদ্ধতিগুলি
ক্রিশ্চিয়ান

6
আমি কীভাবে বোতামটি ফিট করতে ইমেজটি স্কেল করতে পারি? অথবা এটি বোতামের সাথে ফিট করার জন্য চিত্রটি স্বয়ংক্রিয়ভাবে সামঞ্জস্য করবে।
অ্যালস্টন

3
@ স্টলম্যান হিসাবে একই প্রশ্ন, কীভাবে বাটনটি দিয়ে চিত্রটি ফিট করে বামে সেট করবেন?
খুইং

63

ImageButtonআপনি যদি সত্যিই এটি করতে চান তবে একটি ক্যাপশন স্থাপন করা প্রযুক্তিগতভাবে সম্ভব । ব্যবহারের TextViewউপরে কেবল একটি চাপ দিন । ক্লিকযোগ্য না করার জন্য কেবল মনে রাখবেন ।ImageButtonFrameLayoutTextview

উদাহরণ:

<FrameLayout>
    <ImageButton
        android:id="@+id/button_x"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@null"
        android:scaleType="fitXY"
        android:src="@drawable/button_graphic" >
    </ImageButton>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:clickable="false"
        android:text="TEST TEST" >
    </TextView>
</FrameLayout>

এটি ললিপপে অন্যদের উপর নিখুঁতভাবে কাজ করে বলে মনে হচ্ছে না।
হং

2
এই পদ্ধতির সমস্যাটি হ'ল পাঠ্যটি বোতামের অবস্থার দ্বারা প্রভাবিত হবে না (অক্ষম ইত্যাদি) ... আপনি যদি নিজে নিজে না করেন তবে।
থিওপরেটর

9

বন্ধুরা আমাকে সেটিং এবং লগআউট বোতামটি বিকাশ করতে হবে, আমি নীচের কোডটি ব্যবহার করেছি। এখানে চিত্র বর্ণনা লিখুন

    <Button
        android:id="@+id/imageViewLogout"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:layout_margin="@dimen/size_30dp"
        android:layout_alignParentLeft="true"
        android:text="Settings"
        android:drawablePadding="10dp"
        android:background="@android:color/transparent"
        android:layout_alignParentBottom="true"
        android:drawableTop="@drawable/logout" />

4

আসলে, android:textকোনও আর্গুমেন্ট দ্বারা গৃহীত নয় ImageButton তবে, আপনি যদি কোনও নির্দিষ্ট ব্যাকগ্রাউন্ড (অ্যান্ড্রয়েড ডিফল্ট নয়) সহ একটি বোতাম পাওয়ার চেষ্টা করছেন তবে android:backgroundএক্সএমএল বৈশিষ্ট্যটি ব্যবহার করুন , বা ক্লাস থেকে এটি ঘোষণা করুন.setBackground();


4

আমি এটি আমার অ্যাপ্লিকেশনটিতে LinearLayoutব্যবহার Buttonকরেছি এমন একটি ব্যবস্থা ব্যবহার করার পরিবর্তে আপনি এটি ব্যবহার করতে পারেন

 <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="20dp"
        android:background="@color/mainColor"
        android:orientation="horizontal"
        android:padding="10dp">

        <ImageView
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:background="@drawable/ic_cv"
            android:textColor="@color/offBack"
            android:textSize="20dp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:text="@string/cartyCv"
            android:textColor="@color/offBack"
            android:textSize="25dp" />

    </LinearLayout>

দুর্দান্ত সমাধান! অনক্লিক লিনিয়ারলআউটেও পুরোপুরি কাজ করে। আমাদের কোনও বাটন বা ইমেজবটন
স্যাম

2

আপনি এর পরিবর্তে একটি নিয়মিত Buttonএবং অ্যান্ড্রয়েড: অঙ্কনযোগ্য টপ অ্যাট্রিবিউট (বা বাম, ডান, নীচে) ব্যবহার করতে পারেন।


2

সবচেয়ে ভালো উপায়:

<Button 
android:text="OK" 
android:id="@+id/buttonok" 
android:background="@drawable/buttonok"
android:layout_width="match_parent" 
android:layout_height="wrap_content"/>

2
ওপি মূলত যা চেষ্টা করেছে তার থেকে এটি আলাদা নয় বলে মনে হচ্ছে।
ফোনিউক

দুঃখিত, আমি আমার কোড ভুল করেছি। ওয়াসানট ইমেজবটন, কেবল বাটন ছিল।
ইলোয়েটক্সো

2

আমি এটিকে ভার্টিকাল ওরিয়েন্টেশন সহ ImageButtonএবং এর TextViewভিতরে রেখে সমাধান করেছি LinearLayout। দুর্দান্ত কাজ!

<LinearLayout
    android:id="@+id/linLayout"
    android:layout_width="80dp"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <ImageButton
        android:id="@+id/camera_ibtn"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_gravity="center"
        android:background="@drawable/camera" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="80dp"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="@string/take_pic"
        android:textColor="#FFFFFF"
        android:textStyle="bold" />

</LinearLayout>

1

তিনি এখানে একটি সুন্দর বৃত্ত উদাহরণ:

drawable/circle.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">

    <solid
        android:color="#ff87cefa"/>

    <size
        android:width="60dp"
        android:height="60dp"/>
</shape>

এবং তারপরে আপনার এক্সএমএল ফাইলের বোতামটি:

<Button
    android:id="@+id/btn_send"
    android:layout_width="60dp"
    android:layout_height="60dp"
    android:background="@drawable/circle"
    android:text="OK"/>

0

ImageButtonথাকতে পারে না text(বা, কমপক্ষে, android:textতার বৈশিষ্ট্যগুলিতে তালিকাভুক্ত নয়)।

কৌশলটি হ'ল:

দেখে মনে হচ্ছে আপনার ব্যবহার করা দরকার Button(এবং দেখুন drawableTopবা setCompoundDrawablesWithIntrinsicBounds(int,int,int,int))

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