একটি অ্যান্ড্রয়েড এক্সএমএল অঙ্কনযোগ্য ফাইলে একটি বৃত্ত আকৃতি কীভাবে সংজ্ঞায়িত করবেন?


687

অ্যান্ড্রয়েডের জন্য এক্সএমএলে আকারগুলির সংজ্ঞাগুলির ডকুমেন্টেশন খুঁজে পেতে আমার কিছু সমস্যা আছে। এটিকে আমার লেআউট ফাইলগুলিতে অন্তর্ভুক্ত করার জন্য আমি এক্সএমএল ফাইলের একটি কঠিন রঙে পূর্ণ একটি সরল বৃত্তটি সংজ্ঞায়িত করতে চাই।

দুঃখের সাথে android.com এ ডকুমেন্টেশন শেপ ক্লাসগুলির এক্সএমএল বৈশিষ্ট্যগুলি কভার করে না। আমি মনে করি একটি বৃত্ত আঁকার জন্য আমার একটি আর্ক শেপ ব্যবহার করা উচিত তবে কোন আকার বা রঙটি বা কোন বৃত্তটি আর্ক থেকে বের করে দেওয়ার জন্য প্রয়োজনীয় কোণটি কীভাবে সেট করা যায় সে সম্পর্কে কোনও ব্যাখ্যা নেই।


3
আকৃতি
আঁকতে

আপনি এখান থেকে চেনাশোনা এক্সএমএল পেতে পারেন বিকাশকারী.অ্যান্ড্রয়েড.
শাহাব রউফ

তার পর থেকে অ্যান্ড্রয়েড দেব ডকুমেন্টেশনগুলি উন্নত করা হয়েছে। এখন এটি android:shapeউপাদান - অঙ্কনযোগ্য সংস্থানগুলি কভার করে
নেক্সা

উত্তর:


1513

এটি অ্যান্ড্রয়েডে অঙ্কনযোগ্য হিসাবে সাধারণ বৃত্ত।

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

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

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

51
এবং কীভাবে গতিশীলভাবে রঙ পরিবর্তন করবেন?
অঙ্কিত গার্গ

5
@ অঙ্কিতগার্গ আপনি জাভা কোড থেকে রঙিন ফিল্টার প্রয়োগ করতে পারেন (ড্রয়যোগ্য ক্লাস দেখুন)
মিলোস্মেন্স

7
আমি চেষ্টা করেছি dpএবং এটি ডিম্বাকৃতি আকারে বিকৃত হয়েছিল। আমার জন্য, ptপরিবর্তে এটি স্থির করে ব্যবহার করে।
টাইলার

13
যদি আপনি পরে দেখার জন্য বর্গাকার আকার নির্ধারণ sizeকরেন shapeতবে এর জন্য কোনও প্রয়োজন নেই ।
ফেরান মেলিনিচ

2
এর আকৃতি গোলাকার নয়, ওভাল। কেউ কি নিশ্চিত করতে পারবেন ??
যুবক

762

এটি আপনার দেখার পটভূমি হিসাবে সেট করুন

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <stroke
        android:width="1dp"
        android:color="#78d9ff"/>
</shape>

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

শক্ত বৃত্ত ব্যবহারের জন্য:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <solid
        android:color="#48b3ff"/>
</shape>

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

স্ট্রোক সহ সলিড:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <solid android:color="#199fff"/>
    <stroke
        android:width="2dp"
        android:color="#444444"/>
</shape>

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

দ্রষ্টব্য : ovalআকৃতিটিকে একটি বৃত্ত হিসাবে উপস্থিত করার জন্য , এই উদাহরণগুলির মধ্যে, আপনার দৃষ্টিভঙ্গি যে আপনি এই আকারটিকে এর ব্যাকগ্রাউন্ড হিসাবে ব্যবহার করছেন তা আপনার আকৃতির ট্যাগ heightএবং widthবৈশিষ্ট্যগুলিকে সমান মান হিসাবে সেট করতে হবে।


2
সুন্দর সমাধান। অবশ্যই, ওভালটি বৃত্ত হিসাবে প্রদর্শিত হবে যদি ভিউটির প্রস্থ এবং উচ্চতা এক হয়। আমি মনে করি এটিকে বৃত্ত হিসাবে হাজির করার একটি উপায় ছিল যা দেখার আকার নয় matter
ফেরান মেলিনচ

2
@ ফেরানমায়লিঞ্চ "আমি মনে করি এটিকে যতই আকারের বিবেচনা না করে এটিকে বৃত্ত হিসাবে উপস্থিত করার একটি উপায় ছিল।" আমি স্থির প্রস্থ / উচ্চতা এবং একটি পাঠ্য ভিউ (উদাহরণস্বরূপ) সহ একটি চিত্রদর্শন ("src" অঙ্কনযোগ্য হিসাবে চেনাশোনা সহ) উভয়কে মোড়ানো একটি রিলেটিভলআউট ব্যবহার করে এটি সমাধান করেছি।
মিশেল

আমি ঠিক একই জিনিসটি করছি তবে বৃত্তটি ডিম্বাকৃতি হিসাবে আঁকা
বাগগুলি ঘটেছে

আমাদের যদি প্রয়োজন হয় রান চলাকালীন সময়ে বিভিন্ন সীমান্ত রঙের পাঠ্যদর্শনটি তৈরি করার জন্য?
আনশুল তায়াগি ২

@ আনশুলতিয়াগী আমি বিশ্বাস করি আপনি yourView.getBackground()রঙ কল করে এবং ম্যানুয়ালি সেট করে আপনি এটি করতে পারেন । আপনার এটিকে যথাযথ ধরণের করতে হবে ShapeDrawable। এটি সম্পর্কে এসও সম্পর্কিত প্রশ্ন রয়েছে।
এম রেজা নাসিরলু

93

সাধারণ বৃত্তের জন্য কোড

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
        <solid android:color="#9F2200"/>
        <stroke android:width="2dp" android:color="#fff" />
        <size android:width="80dp" android:height="80dp"/>
</shape>

46

অ্যান্ড্রয়েড এসডিকে নমুনাগুলি দেখুন। এপিডেমোস প্রকল্পে বেশ কয়েকটি উদাহরণ রয়েছে:

/ ApiDemos / মাঝামাঝি / অঙ্কনযোগ্য /

  • black_box.xml
  • shape_5.xml
  • ইত্যাদি

এটি গ্রেডিয়েন্ট ফিল সহ একটি চেনাশোনাটির জন্য এমন কিছু দেখবে:

<? এক্সএমএল সংস্করণ = "1.0" এনকোডিং = "utf-8"?>
<আকৃতি xmlns: android = "http://schemas.android.com/apk/res/android" অ্যান্ড্রয়েড: আকৃতি = "ওভাল">
    <গ্রেডিয়েন্ট অ্যান্ড্রয়েড: স্টার্টকালার = "# এফএফএফএফ০০০০" অ্যান্ড্রয়েড: এন্ড কালার = "# 80FF00FF"
            অ্যান্ড্রয়েড কোণ = "270" />
</ আকৃতি>


46

আপনি নীচের মতো ভেক্টরড্রেবেবল ব্যবহার করতে পারেন :

<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="200dp"
    android:height="200dp"
    android:viewportHeight="64"
    android:viewportWidth="64">

    <path
        android:fillColor="#ff00ff"
        android:pathData="M22,32
        A10,10 0 1,1 42,32
        A10,10 0 1,1 22,32 Z" />
</vector>

উপরের এক্সএমএলটি রেন্ডার করে:

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


আরে, আমি বৃত্ত এবং ভিউপোর্টের মধ্যে একটি প্যাডিং করছি। তুমি কি আমাকে সাহায্য করতে পারবে?
অজিত

1
@ অজিৎ আপনি ভিউপোর্টের আকার পরিবর্তন করতে পারেন এবং আপনি নিজের পথটি দলের ভিতরে রাখতে পারেন এবং অনুবাদ এবং স্কেলটি নির্দিষ্ট করতে পারেন<group android:translateX="-10" android:translateY="15"><path ...
বোরিস ট্রুখভ

2
@ রিয়াস আপনি কি পথের ডেটা অংশটি ব্যাখ্যা করতে পারবেন? এই সমন্বয়গুলি কী বোঝায়?
দর্শন মিসকিন

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

    <!-- fill color -->
    <solid android:color="@color/white" />

    <!-- radius -->
    <stroke
        android:width="1dp"
        android:color="@color/white" />

    <!-- corners -->
    <corners
        android:radius="2dp"/>
</shape>

1
<corners />ডিম্বাকৃতিতে কী করবেন (যা আমার ধারণার কোনও কোণ নেই)?
স্কট বিগস 17

17

প্রাক-উপাদানগুলির জন্য এখানে একটি সাধারণ চেনাশোনা_ব্যাকগ্রাউন্ড.এক্সএমএল:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
        <shape android:shape="oval">
            <solid android:color="@color/color_accent_dark" />
        </shape>
    </item>
    <item>
        <shape android:shape="oval">
            <solid android:color="@color/color_accent" />
        </shape>
    </item>
</selector>

আপনি 'android:background="@drawable/circle_background"আপনার বোতামের বিন্যাস সংজ্ঞাতে বৈশিষ্ট্যটি ব্যবহার করতে পারেন


+ আকৃতির (ব্যবহারের উপর নির্ভর করে) 'আকার' যুক্ত করুন।
টাচবোর্ডার

17

আপনি যদি এই জাতীয় বৃত্ত চান

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

নীচের কোডটি ব্যবহার করে দেখুন:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:innerRadius="0dp"
    android:shape="ring"
    android:thicknessRatio="2"
    android:useLevel="false" >
    <solid android:color="@android:color/white" />
    <stroke
        android:width="1dp"
        android:color="@android:color/darker_gray" />
</shape>

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

    <stroke
        android:width="10dp"
        android:color="@color/white"/>

    <gradient
        android:startColor="@color/red"
        android:centerColor="@color/red"
        android:endColor="@color/red"
        android:angle="270"/>

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

7

মাঝামাঝি / drawble / circle_shape.xml

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

        <shape android:shape="oval">
            <solid android:color="#e42828"/>
            <stroke android:color="#3b91d7" android:width="5dp"/>
            <!-- Set the same value for both width and height to get a circular shape -->
            <size android:width="250dp" android:height="250dp"/>
        </shape>
    </item>
</selector>

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


4

আপনি এটি চেষ্টা করতে পারেন -

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="ring"
    android:innerRadiusRatio="700"
    android:thickness="100dp"
    android:useLevel="false">

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

</shape>

এছাড়াও, আপনি সামঞ্জস্য করে বৃত্তের ব্যাসার্ধকে সামঞ্জস্য করতে পারেন android:thickness

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


এটা সত্যিই দুর্দান্ত! বৈশিষ্ট্যগুলি স্বজ্ঞাত নয় বলে অবশ্যই এটি কিছুটা খেলতে হবে। আমি প্রতিবার একটি সীমানার জন্য একটি দুর্দান্ত খালি চেনাশোনাটি প্রদর্শন করতে এটি পরিচালনা করেছিলাম। এবং পুরো বৃত্তটি প্রদর্শিত হবে তা নিশ্চিত করতে আপনি প্যাডিং ব্যবহার করতে পারেন।
স্কট বিগস 17

2

আমি কোনও কারণে আমার কনস্ট্রেন্টলআউট এর ভিতরে একটি বৃত্ত আঁকতে পারি না, আমি উপরের উত্তরগুলির কোনওটিই ব্যবহার করতে পারি না।

আপনি "Alt + 7" টিপলে, পুরোপুরি কী কাজ করেছে তা প্রকাশিত পাঠ্য সহ একটি সাধারণ টেক্সটভিউ:

 <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#0075bc"
            android:textSize="40dp"
            android:text="•"></TextView>

খুব চালাক! আমি নিশ্চিত যে কেউ এটি দরকারী খুঁজে পাবেন।
স্কট বিগস 17

খুব দরকারী, দুর্দান্ত ..
মাহবুবুর রহমান খান

1

আপনি এটি ব্যবহার করার চেষ্টা করতে পারেন

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

<item>
    <shape
        android:innerRadius="0dp"
        android:shape="ring"
        android:thicknessRatio="2"
        android:useLevel="false" >
        <solid android:color="@color/button_blue_two" />
    </shape>
</item>

এবং যদি আপনি এটি কোনও পাঠ্যদৃষ্টির জন্য ব্যবহার করে থাকেন তবে আপনাকে প্রস্থ এবং উচ্চতার দিক অনুপাতটিকে বিরক্ত করতে হবে না


0
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="oval">
            <solid android:color="@color/text_color_green"/>
            <!-- Set the same value for both width and height to get a circular shape -->
            <size android:width="250dp" android:height="250dp"/>
        </shape>
    </item>
</selector>

0

একটি অ্যান্ড্রয়েড এক্সএমএল অঙ্কনযোগ্য ফাইলে একটি বৃত্ত আকার shape

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <solid android:color="@android:color/white" />
    <stroke
        android:width="1.5dp"
        android:color="@android:color/holo_red_light" />
    <size
        android:width="120dp"
        android:height="120dp" />
</shape>

স্ক্রিনশট

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


-23

শুধু ব্যবহার

ShapeDrawable circle = new ShapeDrawable( new  OvalShape() );

26
এবং কীভাবে আমি আমার এক্সএমএল লেআউট ফাইলটিতে এটি চিত্র-ভিউয়ের এসআরসি হিসাবে সেট করতে পারি?
জানুজ

এটি কোনও এক্সএমএল লেআউট কোডের জন্য সরাসরি প্রযোজ্য নয়
লেগ্রান্ড

1
এটি আসলে কাজ করে। ধন্যবাদ :) ভাল ব্যাকগ্রাউন্ড = শেপড্রেইবল (ওভালশ্যাপ ()) ব্যাকগ্রাউন্ড.পেনট কোডার = কনটেক্সট কম্পিউটার (LayerDrawable (স্তর))
ডেভিড

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