অ্যান্ড্রয়েড লেআউট: এই ট্যাগ এবং তার বাচ্চাদের এক <টেক্সটভিউ /> এবং একটি যৌগিক অঙ্কনযোগ্য দ্বারা প্রতিস্থাপন করা যেতে পারে


116

আমি যখন একটি নির্দিষ্ট এক্সএমএল ফাইলে লেআউট রান করি তখন আমি এটি পাই:

 This tag and its children can be replaced by one <TextView/> 
and a compound drawable

নিম্নলিখিত এক্সএমএল কোডের জন্য কী পরিবর্তন করা উচিত:

<LinearLayout android:id="@+id/name_layout"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:gravity="center_vertical"
                android:background="@drawable/grouplist_single_left_grey_area" >
                <ImageView android:id="@+id/photo_image"
                    android:layout_width="@dimen/thumbnail_width"
                    android:layout_height="@dimen/thumbnail_height"
                    android:paddingBottom="5dip"
                    android:paddingTop="5dip"
                    android:paddingRight="5dip"
                    android:paddingLeft="5dip"
                    android:layout_marginRight="5dip"
                    android:clickable="true"
                    android:focusable="true"
                    android:scaleType="fitCenter"
                    android:src="@*android:drawable/nopicture_thumbnail"
                    android:background="@drawable/photo_highlight" />
                <TextView android:id="@+id/name"
                    android:paddingLeft="5dip"
                    android:layout_weight="1"
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:gravity="center_vertical"
                    android:textAppearance="?android:attr/textAppearanceLarge" />
            </LinearLayout>

স্ক্রিনে এটি দেখতে কেমন দেখাচ্ছে:

এখানে চিত্র বর্ণনা লিখুন

ক্যামেরা আইকনটি ডিফল্ট। এটিতে ক্লিক করা ব্যবহারকারীকে অন্য চিত্র চয়ন করার বিকল্প দেবে।


3
+1, কারণ এই পরিস্থিতিটি যৌগিক অঙ্কনযোগ্য দ্বারা পরিচালিত হতে পারে তার চেয়ে জটিল looks আপনি যদি রোমেনের উত্তর গ্রহণ না করে থাকেন তবে আপনি আরও গভীরতর উত্তর পেতে পারেন।
AlbeyAmakiir

উত্তর:


153

রোমেন গায়ের উত্তরে প্রসারিত করতে এখানে একটি উদাহরণ দেওয়া আছে।

আগে:

<LinearLayout 
android:layout_width="fill_parent"
android:layout_height="wrap_content" 
android:layout_marginTop="10dp"  
android:padding="5dp" >

<TextView 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:text="My Compound Button" />

<ImageView 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/my_drawable" />
</LinearLayout>

পরে:

<TextView  
    android:layout_marginTop="10dp"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:text="My Compound Button" 
    android:drawableRight="@drawable/my_drawable" android:padding="5dp" />

45
নিফটি। তবে যদি আমার আঁকতে বৈশিষ্ট্যগুলি সেট করার দরকার হয়, যেমন এটি 60dip x 60dip তে সংজ্ঞায়িত করতে চান?
কাইল Clegg

4
এই যে দেখুন, আমাকে যা করতে হয়েছিল তা হ'ল অনুসন্ধান। stackoverflow.com/a/6671544/1224741
কেইইডি

@ কাইলকিলেগ, এটি একটি কাস্টম লাইব্রেরির মাধ্যমে সম্ভব। আমার উত্তর দেখুন - stackoverflow.com/a/41347470/2308720
ওলেকসান্ডার

102

মার্জ TextViewএবং ImageViewএক মধ্যে, TextView এর ব্যবহার করে setCompoundDrawable*()পদ্ধতি, বা ব্যবহার android:drawableLeft


30
আপনি কী আমাকে কীভাবে এটি করা যেতে পারে তা বোঝানোর জন্য একটি উদাহরণ দেখিয়ে দিতে পারেন? আমি নিশ্চিত নই যে ইমেজভিউয়ের সমস্ত বৈশিষ্ট্য কীভাবে অ্যান্ড্রয়েডে আঁকতে পারে: অঙ্কনযোগ্য লেফট। আপনাকে ধন্যবাদ
pdilip

1
স্কেলটাইপের মতো ইমেজভিউ বৈশিষ্ট্য সম্পর্কে কী?
neteinstein

2
আমি কীভাবে চিত্র এবং পাঠ্যের মধ্যে ফাঁক বাড়িয়ে দেব?
থারাকা নির্মণা

2
#CompoundDrawable * () কাজ করছে না, এর পরিবর্তে setCompoundDrawablesWithIntrinsicBounds () ব্যবহার করুন
Kimo_do

1
@ কিমো_ডো, setCompoundDrawable()আপনার অঙ্কনীয় যেমন আছে তেমন যত্ন নেবে না, আপনাকে setBoundsএটির কল করতে হবে ( এপিআই দেখুন )। এটি সেট করার জন্য, আপনি পূর্ববর্তী সীমাগুলি ব্যবহার TextView.getCompoundDrawables()করে সঠিক অঙ্কনীয় সূচকটি অ্যাক্সেস করতে এবং শেষ পর্যন্ত কল করতে পারেন getBounds()
অবিনাশ আর

19

ভেবেছিলাম আমি এর জন্য আরও কিছু অতিরিক্ত পুন্টো নেওয়ার চেষ্টা করব: আপনি ব্যবহার করে চিত্র এবং পাঠ্যের মধ্যে প্যাডিং যুক্ত করতে পারেন android:drawablePaddinghttps://stackoverflow.com/a/6671544/1224741


3

কখনও কখনও ImageView(বা একাধিক) এবং যৌগিক ড্রয়যোগ্য (গুলি) এর TextViewসাথে প্রতিস্থাপন করা সম্ভব TextView। নেটিভ এপিআই এবং এই টেক্সটভিউরিচড্রেবল লাইব্রেরি ব্যবহার করে যৌগিক অঙ্কনযোগ্য প্রয়োগ করতে পারে এমন অনেকগুলি পরামিতি নেই , তবে আপনি যদি লিনিয়ারলআউট ব্যবহার না করে একটি টেক্সটভিউ পরিচালনা করতে পারেন তবে অবশ্যই এটি ব্যবহার করা উচিত

যৌগিক অঙ্কনযোগ্যগুলিতে প্রয়োগ করা যেতে পারে এমন বৈশিষ্ট্য এবং পরামিতিগুলির তালিকা:

আকার: ( হ্যাঁ, সত্যিই ):

<com.tolstykh.textviewrichdrawable.TextViewRichDrawable
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Some text"
    app:compoundDrawableHeight="24dp"
    app:compoundDrawableWidth="24dp"/>

এমনকি ভেক্টর রিসোর্সটিকে অঙ্কনযোগ্য হিসাবে সেট করুন :

<com.tolstykh.textviewrichdrawable.TextViewRichDrawable
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Some text"
    app:drawableTopVector="@drawable/some_vector_drawble"
    app:drawableEndVector="@drawable/another_vector_drawable" />

নেটিভ এপিআই android:drawablePadding-> লিঙ্কটি ব্যবহার করে অঙ্কনযোগ্য প্যাডিং

এখানে একটি উদাহরণ:

পাঠ্যদর্শন সমৃদ্ধ অঙ্কনযোগ্য


2

একজন LinearLayoutযা ধারণ করে একটি ImageViewএবং একটি TextViewআরো দক্ষতার সঙ্গে একটি যৌগ অঙ্কনযোগ্য যেমন ঘাঁটা করা যেতে পারে (একটি একক TextViewব্যবহার drawableTop, drawableLeft, drawableRight এবং / অথবা drawableBottomএক বা একাধিক চিত্র টেক্সট সংলগ্ন আঁকা বৈশিষ্ট্যাবলী)।

দুটি উইজেট যদি মার্জিনের সাথে একে অপরের থেকে অফসেট হয়, তবে এটি কোনও drawablePaddingগুণাবলীর সাথে প্রতিস্থাপন করা যেতে পারে ।

Eclipse প্লাগইনে এই রূপান্তরটি সম্পাদন করার জন্য একটি লিন্ট কুইকফিক্স রয়েছে।

থেকে: অ্যান্ড্রয়েড অফিসিয়াল এপিআই ডক্স!



1

আমি যখন উপরের কোডটি অনুসরণ করেছি তখন টেক্সটভিউয়ের ভিতরে পাঠ্য সঠিকভাবে সেট হয় না। জিজ্ঞাসিত প্রশ্নের মধ্যে যা দেখানো হয়েছে তা অর্জনের জন্য আপনাকে এর মাধ্যাকর্ষণটি কেন্দ্রে স্থাপন করতে হবে।

পাঠ্যদর্শনটি দেখতে এমন দেখাচ্ছে:

   <TextView
        android:id="@+id/export_text"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:drawableLeft="@drawable/up_arrow"
        android:drawableStart="@drawable/up_arrow"
        android:gravity="center|start"
        android:text="....."
        android:textSize="@dimen/font_size15" >
    </TextView>

0

আপনি যদি চিত্রটি দেখুন এবং পাঠ্যদর্শনটি পরিবর্তন করতে না চান তবে আপনি AndroidManLive.xML এ সংস্করণটি এটি হিসাবে পরিবর্তন করতে পারবেন:

    <uses-sdk`
    android:minSdkVersion="8"
    android:targetSdkVersion="18" 
    />

যদি আপনার সংস্করণটি অ্যান্ড্রয়েড হয়: টার্গেটসডকভিশন = "17" এটিকে "18" পরিবর্তন করুন।

আশা করি এটি সুস্থ হবে। আমি এটা করেছি এবং সঠিকভাবে পেয়েছি


-2

আরেকটি পদ্ধতির ভিউআইমেজকে অন্য লিনিয়ারলআউটে এম্বেড করা হয়েছে (এটি একা আইডি দিয়ে পরিচালনা করতে দিন):

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <LinearLayout 
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >    
        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/blue_3"
            android:layout_gravity="center_horizontal"
            android:paddingTop="16dp" />
    </LinearLayout>
    <TextView 
        android:id="@+id/tvPrompt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:paddingTop="16dp"
        android:text="@string/xy" />


এখন এর সুবিধা কী হবে? এবং আপনি কেন দু'বার নেমস্পেসটি সেট করছেন?
ygeher

-5
    This tag and its children can be replaced by one <TextView/> and a compound drawable



    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/imageview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:focusable="false"
        android:contentDescription="."
        android:padding="3dp" 
        android:src="@drawable/tab_home_btn">
    </ImageView>

    <TextView
        android:id="@+id/textview"       
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:text="首页"
        android:textSize="10sp"
        android:textColor="#ffffff">
    </TextView>

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