আমি কীভাবে কোনও অ্যান্ড্রয়েড পাঠ্যদর্শনটির চারপাশে একটি সীমানা রাখব?


719

পাঠ্যদর্শনটির চারপাশে কোনও সীমানা আঁকানো সম্ভব?


আমি এখানে একটি নোংরা সমাধান পোস্ট করেছি: stackoverflow.com/a/45242147/4291937
গ্রেগর আবে

উত্তর:


1273

আপনি দেখার জন্য ব্যাকগ্রাউন্ড হিসাবে একটি আকার আঁকতে সক্ষম (একটি আয়তক্ষেত্র) সেট করতে পারেন।

<TextView android:text="Some text" android:background="@drawable/back"/>

এবং আয়তক্ষেত্রের অঙ্কনযোগ্য ব্যাক.এক্সএমএল (পুনরায় / অঙ্কনযোগ্য ফোল্ডারে রেখে দেওয়া):

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
   <solid android:color="@android:color/white" />
   <stroke android:width="1dip" android:color="#4fa5d5"/>
</shape>

আপনি @android:color/transparentস্বচ্ছ পটভূমিতে দৃ color় রঙের জন্য ব্যবহার করতে পারেন । সীমান্ত থেকে পাঠ পৃথক করতে আপনি প্যাডিং ব্যবহার করতে পারেন। আরও তথ্যের জন্য দেখুন: http://developer.android.com/guide/topics/resources/drawable-resource.html


83
আমি যদি কেবল শীর্ষ সীমান্ত চাই?
হ্যাপিহার্ডিক

19
@ ভিজ তাঁর পদ্ধতিটি ক্রমবর্ধমান অংশটি দেখার জন্য অযৌক্তিক জটিলতা যুক্ত করেছে। তার পদ্ধতিটি ব্যবহার করতে আপনার আরও দুটি অতিরিক্ত দর্শন (একটি বিন্যাস ধারক এবং সীমান্তের দৃশ্য) প্রয়োজন হবে। সুতরাং আপনার যদি সীমানা যুক্ত করতে আপনার অনেক ভিউ থাকে তবে আপনার দর্শন গাছটি অকেজো হয়ে উঠবে।
কনস্ট্যান্টিন বুড়ভ

5
@ হোয়াজ এখনও এই পদ্ধতিটি কোনও থিমের মাধ্যমে থিম প্রয়োগ করা যেতে পারে, তবে ইয়ংগু-র পদ্ধতিটি এভাবে ব্যবহার করা যাবে না।
কনস্ট্যান্টিন বুড়ভ

12
শুধুমাত্র শীর্ষ সীমান্তের জন্য , এই প্রশ্নটি দেখুন
পাং

7
আপনি অঙ্কনযোগ্য তৈরি করতে এই সরঞ্জামটি http://shapes.softartstudio.com ব্যবহার করতে পারেন ।
আর্দা বাসোগলু

186

আমাকে কয়েকটি পৃথক (নন-প্রোগ্রাম্যাটিক) পদ্ধতির সংক্ষিপ্ত বিবরণ দিন।

একটি আকার আকৃতির ব্যবহার করে

আপনার অঙ্কনযোগ্য ফোল্ডারে একটি এক্সএমএল ফাইল হিসাবে নিম্নলিখিতটি সংরক্ষণ করুন (উদাহরণস্বরূপ, my_border.xML):

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

    <!-- View background color -->
    <solid
        android:color="@color/background_color" >
    </solid>

    <!-- View border color and width -->
    <stroke
        android:width="1dp"
        android:color="@color/border_color" >
    </stroke>

    <!-- The radius makes the corners rounded -->
    <corners
        android:radius="2dp"   >
    </corners>

</shape>

তারপরে এটি কেবল আপনার পাঠ্যদৃষ্টিতে ব্যাকগ্রাউন্ড হিসাবে সেট করুন:

<TextView
    android:id="@+id/textview1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/my_border" />

আরো সাহায্য:

একটি 9-প্যাচ ব্যবহার করা

একটি 9-প্যাচ একটি প্রসারিত পটভূমি চিত্র। আপনি যদি কোনও সীমানা দিয়ে কোনও চিত্র তৈরি করেন তবে এটি আপনার পাঠ্যদর্শনকে একটি সীমানা দেবে। আপনাকে যা করতে হবে তা হ'ল চিত্রটি তৈরি করা এবং তারপরে এটি আপনার টেক্সটভিউয়ের পটভূমিতে সেট করা।

<TextView
    android:id="@+id/textview1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/my_ninepatch_image" />

এখানে কয়েকটি লিঙ্ক রয়েছে যা 9 প্যাচ চিত্রটি কীভাবে তৈরি করতে হবে তা দেখিয়ে দেবে:

আমি যদি কেবল শীর্ষ সীমান্ত চাই?

একটি স্তর তালিকা ব্যবহার করে

একে অপরের উপরে দুটি আয়তক্ষেত্র স্ট্যাক করার জন্য আপনি একটি স্তর তালিকা ব্যবহার করতে পারেন। দ্বিতীয় আয়তক্ষেত্রটি প্রথম আয়তক্ষেত্রের থেকে সামান্য ছোট করে, আপনি একটি সীমানা প্রভাব তৈরি করতে পারেন। প্রথম (নিম্ন) আয়তক্ষেত্রটি সীমানার রঙ এবং দ্বিতীয় আয়তক্ষেত্রটি পটভূমির রঙ।

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

    <!-- Lower rectangle (border color) -->
    <item>
        <shape android:shape="rectangle">
            <solid android:color="@color/border_color" />
        </shape>
    </item>

    <!-- Upper rectangle (background color) -->
    <item android:top="2dp">
        <shape android:shape="rectangle">
            <solid android:color="@color/background_color" />
        </shape>
    </item>
</layer-list>

android:top="2dp"অফসেটগুলি সেট করা 2 ডিপি দিয়ে শীর্ষে (এটি আরও ছোট করে তোলে)। এটি সীমান্তের প্রভাব প্রদান করে প্রথম (নিম্ন) আয়তক্ষেত্রটি দিয়ে দেখায়। আপনি টেক্সটভিউ ব্যাকগ্রাউন্ডে একইভাবে প্রয়োগ করতে পারেন ঠিক shapeউপরে অঙ্কনযোগ্যটি করা হয়েছিল।

স্তর তালিকা সম্পর্কে আরও কিছু লিঙ্ক এখানে দেওয়া হয়েছে:

একটি 9-প্যাচ ব্যবহার করা

আপনি কেবল একটি একক সীমানা দিয়ে 9-প্যাচ চিত্র তৈরি করতে পারেন। উপরের আলোচনার মতো অন্য সব কিছুই।

একটি ভিউ ব্যবহার করা হচ্ছে

এটি একটি কৌশল একটি ধরণের তবে আপনার যদি দুটি ভিউ বা একটি একক পাঠ্য ভিউয়ের একটি সীমানার মধ্যে পৃথককারী যুক্ত করার প্রয়োজন হয় তবে এটি ভাল কাজ করে।

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textview1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <!-- This adds a border between the TextViews -->
    <View
        android:layout_width="match_parent"
        android:layout_height="2dp"
        android:background="@android:color/black" />

    <TextView
        android:id="@+id/textview2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</LinearLayout>

এখানে আরও কয়েকটি লিঙ্ক রয়েছে:


24
জিজ মানুষ, এটিকে জটিল border: 1px solid #999;হওয়ার কথা না ।
আছসর 23

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

@ আকাশদুবে, দুঃখিত, আমি এর আগে এটি করিনি। আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি প্রত্যেকে আলাদা করে চেষ্টা করুন এবং তারপরে তাদের একত্র করুন। আপনি যদি আটকে যান তবে স্ট্যাক ওভারফ্লো সম্পর্কে একটি নতুন প্রশ্ন জিজ্ঞাসা করুন।
সুরগাচ

49

সহজ উপায় হ'ল আপনার টেক্সটভিউয়ের জন্য একটি ভিউ যুক্ত করা। নীচের সীমানা রেখার জন্য উদাহরণ:

<LinearLayout android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent">
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="10dp"
        android:text="@string/title"
        android:id="@+id/title_label"
        android:gravity="center_vertical"/>
    <View
        android:layout_width="fill_parent"
        android:layout_height="0.2dp"
        android:id="@+id/separator"
        android:visibility="visible"
        android:background="@android:color/darker_gray"/>

</LinearLayout>

অন্য দিকের সীমানার জন্য, দয়া করে বিভাজক দর্শনের অবস্থানটি সামঞ্জস্য করুন।


3
আমার অভিজ্ঞতার জন্য এই সমাধানটি, পুরানো ডিভাইসে, অ্যাপ্লিকেশনটির কার্যকারিতাটিতে শান্ত দৃশ্যমান প্রভাব ফেলে।
রবার্তো লম্বারদিনি

43
মুদ্রাস্ফীতি দৃষ্টিকোণ থেকে এটি একটি ভয়াবহ সমাধান। আপনি তিনটি নতুন দর্শন উপাদান তৈরি করেন এবং ক্রমবর্ধমান গভীরতার দৃশ্যে আরও একটি স্তর যুক্ত করেন
ফিলিপপ

ফিলিপ যেমন বলেছিল মুদ্রাস্ফীতি দৃষ্টিভঙ্গির কারণে সবচেয়ে খারাপ সমাধান। আপনি কি জানেন যে টেক্সটভিউতে সুনির্দিষ্টভাবে এটি করার জন্য নির্দিষ্ট এক্সএমএল ট্যাগ রয়েছে: বাম / ডান / উপরে / নীচে আপনার টেক্সটভিউটি আঁকা একটি চিত্রকে সংজ্ঞায়িত করুন এবং তারা অ্যান্ড্রয়েড হিসাবে পরিচিত: অঙ্কনযোগ্য ****
ম্যাথিয়াস সেগুই অ্যান্ড্রয়েড

32

আমি পাঠ্যদণ্ডটি প্রসারিত করে এবং ম্যানুয়ালি একটি সীমানা অঙ্কন করে এই সমস্যাটি সমাধান করেছি। আমি এমনকি যুক্ত করেছি যাতে আপনি কোনও সীমানা বিন্দু বা ড্যাশযুক্ত নির্বাচন করতে পারেন।

public class BorderedTextView extends TextView {
        private Paint paint = new Paint();
        public static final int BORDER_TOP = 0x00000001;
        public static final int BORDER_RIGHT = 0x00000002;
        public static final int BORDER_BOTTOM = 0x00000004;
        public static final int BORDER_LEFT = 0x00000008;

        private Border[] borders;

        public BorderedTextView(Context context, AttributeSet attrs, int defStyle) {
            super(context, attrs, defStyle);
            init();
        }

        public BorderedTextView(Context context, AttributeSet attrs) {
            super(context, attrs);
            init();
        }

        public BorderedTextView(Context context) {
            super(context);
            init();
        }
        private void init(){
            paint.setStyle(Paint.Style.STROKE);
            paint.setColor(Color.BLACK);
            paint.setStrokeWidth(4);        
        }
        @Override
        protected void onDraw(Canvas canvas) {
            super.onDraw(canvas);
            if(borders == null) return;

            for(Border border : borders){
                paint.setColor(border.getColor());
                paint.setStrokeWidth(border.getWidth());

                if(border.getStyle() == BORDER_TOP){
                    canvas.drawLine(0, 0, getWidth(), 0, paint);                
                } else
                if(border.getStyle() == BORDER_RIGHT){
                    canvas.drawLine(getWidth(), 0, getWidth(), getHeight(), paint);
                } else
                if(border.getStyle() == BORDER_BOTTOM){
                    canvas.drawLine(0, getHeight(), getWidth(), getHeight(), paint);
                } else
                if(border.getStyle() == BORDER_LEFT){
                    canvas.drawLine(0, 0, 0, getHeight(), paint);
                }
            }
        }

        public Border[] getBorders() {
            return borders;
        }

        public void setBorders(Border[] borders) {
            this.borders = borders;
        }
}

এবং সীমান্ত শ্রেণি:

public class Border {
    private int orientation;
    private int width;
    private int color = Color.BLACK;
    private int style;
    public int getWidth() {
        return width;
    }
    public void setWidth(int width) {
        this.width = width;
    }
    public int getColor() {
        return color;
    }
    public void setColor(int color) {
        this.color = color;
    }
    public int getStyle() {
        return style;
    }
    public void setStyle(int style) {
        this.style = style;
    }
    public int getOrientation() {
        return orientation;
    }
    public void setOrientation(int orientation) {
        this.orientation = orientation;
    }
    public Border(int Style) {
        this.style = Style;
    }
}

আশা করি এটি কাউকে সাহায্য করবে :)


কিভাবে সীমানা সূচনা?
zionpi

এটি সঠিকভাবে কাজ করতে পারে না, কারণ কোডটি দেখায় যে এটি নির্ধারিত মানের অর্ধেক আকারের সীমানা
আঁকবে

14

আমি কেবল একটি অনুরূপ উত্তর খুঁজছিলাম - এটি একটি স্ট্রোক এবং নিম্নলিখিত ওভাররাইড দিয়ে সম্পন্ন করতে সক্ষম:

@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {

Paint strokePaint = new Paint();
strokePaint.setARGB(255, 0, 0, 0);
strokePaint.setTextAlign(Paint.Align.CENTER);
strokePaint.setTextSize(16);
strokePaint.setTypeface(Typeface.DEFAULT_BOLD);
strokePaint.setStyle(Paint.Style.STROKE);
strokePaint.setStrokeWidth(2);

Paint textPaint = new Paint();
textPaint.setARGB(255, 255, 255, 255);
textPaint.setTextAlign(Paint.Align.CENTER);
textPaint.setTextSize(16);
textPaint.setTypeface(Typeface.DEFAULT_BOLD);

canvas.drawText("Some Text", 100, 100, strokePaint);
canvas.drawText("Some Text", 100, 100, textPaint);

super.draw(canvas, mapView, shadow); 
}

গ্রেট! আমার একমাত্র উদ্বেগ হ'ল আমি যখন ফোনে এবং এমুলেটর উভয়েই ড্রআরআরন্ডরেক্ট ব্যবহার করি তখন স্ট্রোক কোণে কুৎসিত হয়।
এর্ডোমিস্টার

1
@ এরডোমিস্টার হতে পারে স্ট্রোকপেইন্ট পেইন্ট = নতুন পেইন্ট (পেইন্ট.আ্যানটি_এলআইএএস_এফএলএজি); "কোণে কুৎসিত" সমস্যাটি সমাধান করবে
পি-আরএড

14

আপনি দুটি পদ্ধতি দ্বারা সীমানা সেট করতে পারেন। একটিতে আঁকতে সক্ষম এবং দ্বিতীয়টি প্রোগ্রাম্যাটিক।

অঙ্কনযোগ্য ব্যবহার

<shape>
    <solid android:color="@color/txt_white"/>
    <stroke android:width="1dip" android:color="@color/border_gray"/>
    <corners android:bottomLeftRadius="10dp"
             android:bottomRightRadius="0dp"
             android:topLeftRadius="10dp"
             android:topRightRadius="0dp"/>
    <padding android:bottom="0dip"
             android:left="0dip"
             android:right="0dip"
             android:top="0dip"/>
</shape>

কর্মসূচি


public static GradientDrawable backgroundWithoutBorder(int color) {

    GradientDrawable gdDefault = new GradientDrawable();
    gdDefault.setColor(color);
    gdDefault.setCornerRadii(new float[] { radius, radius, 0, 0, 0, 0,
                                           radius, radius });
    return gdDefault;
}

কীভাবে এই আকারটি এক্সএমএল টেক্সটভিউয়ের সাথে সম্পর্কিত হবে?
নিও 42

14

সবচেয়ে সহজ সমাধান আমি খুঁজে পেয়েছি (এবং যা আসলে কাজ করে):

<TextView
    ...
    android:background="@android:drawable/editbox_background" />

এটি কি এক জায়গা থেকে সমস্ত পাঠ্যদর্শনগুলিতে প্রয়োগ করা সম্ভব?
ইয়ান ওয়ারবার্টন

একটি চটজলদি জন্য ভাল। তবে চলমান ডিভাইসের সংস্করণের উপর নির্ভর করে এটি খুব অস্বাভাবিক প্রভাব ফেলতে পারে। এটি হ'ল গুগল এডিটেক্সটগুলি কীভাবে দেখায় তা পরিবর্তন করে চলেছে (আপনি ফ্যাশনে থাকতে হবে!)
স্কট বিগস

11

আমি একটি টেক্সটভিউয়ের চারপাশে সীমানা রাখার আরও ভাল উপায় খুঁজে পেয়েছি।

পটভূমির জন্য নয়-প্যাচ চিত্রটি ব্যবহার করুন। এটি বেশ সহজ, এসডিকে 9-প্যাচ চিত্রটি তৈরি করার জন্য একটি সরঞ্জাম নিয়ে আসে এবং এতে কোনও কোডিং থাকে না

লিঙ্কটি হ'ল http://developer.android.com/guide/topics/ographicics/2d-ographicics.html#nine-patch


2
দরকারী, হ্যাঁ, তবে এটি কীভাবে ভাল?
সামগ্রিক

2
গৃহীত উত্তর হিসাবে একটি আকার ব্যবহার করা 9-প্যাচের চেয়ে ভাল, একটি এক্সএমএল ফাইল গ্রাফিক সম্পদের চেয়ে আরও নমনীয়
জোসে_জিডি

অবশ্যই, আপনি যদি প্রোগ্রামিকভাবে গ্রাফিকগুলি তৈরি করতে চান তবে আপনি এটি সীমাবদ্ধ রাখতে চান তবে এটি আরও নমনীয়।
নিক

2
আকৃতি-দৃষ্টিভঙ্গি অকেজো er রঙিন অভ্যন্তর এবং অন্যথায় রঙিন সীমান্তরেখার সাথে একটি আয়তক্ষেত্র। এবং এটি কখনও স্বচ্ছ নয়। এটি সবসময় রঙ বিরক্ত করে। এছাড়াও, অন্য শ্রেণীর কাছ থেকে উত্তরাধিকার সূত্রে প্রাপ্ত একটি শ্রেণীরও সমস্ত বৈশিষ্ট্য থাকা উচিত, কারণ এটি উত্তরাধিকারসূত্রে প্রাপ্ত। সত্যই বুঝতে পারি না, কেন প্রাথমিক OO- নকশা-নির্দেশিকা অ্যান্ড্রয়েড দ্বারা বিভক্ত। উদাহরণস্বরূপ, আমি বোতাম থেকে উত্তরাধিকারসূত্রে পেয়েছি। সমস্ত বৈশিষ্ট্য চলে গেছে। কেন?
আইসবিটিস

2
@ জেরেমি দৃশ্যত ধীর? আপনি এটি কিভাবে পালন করবেন?
ইগোরগানাপলস্কি

11

আপনি আপনার কোডে এর মতো কিছু যুক্ত করতে পারেন:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle" >
    <solid android:color="#ffffff" />
    <stroke android:width="1dip" android:color="#4fa5d5"/>
</shape>

স্ট্রোক কেন প্রয়োজনীয়?
ইগোরগানাপলস্কি

@ ইগোরগানাপলস্কি, স্ট্রোকটি আসল সীমানা তৈরি করে?
তাশ পেমিভা

10

গোলাকার কোণ তৈরি করতে নীচের লিঙ্কটি দেখুন: http://androidcookbook.com/Recipe.seam?recipeId=2318

অ্যান্ড্রয়েড প্রকল্পে রেজ-এর অধীনে অঙ্কনযোগ্য ফোল্ডারটি বিটম্যাপে (পিএনজি বা জেপিজি ফাইল) সীমাবদ্ধ নয়, তবে এটি এক্সএমএল ফাইলগুলিতে সংজ্ঞায়িত আকারও ধারণ করতে পারে।

প্রকল্পগুলিতে এই আকারগুলি পুনরায় ব্যবহার করা যেতে পারে। একটি আকার একটি বিন্যাসের চারদিকে সীমানা রাখতে ব্যবহার করা যেতে পারে। এই উদাহরণটি বাঁকা কোণগুলির সাথে একটি আয়তক্ষেত্রাকার সীমানা দেখায়। কাস্টমবোর্ডার.এক্সএমএল নামে একটি নতুন ফাইল অঙ্কনযোগ্য ফোল্ডারে তৈরি করা হয়েছে (এক্সলাইসে ফাইল মেনু ব্যবহার করুন এবং নতুন তারপরে ফাইল নির্বাচন করুন, ফাইলের নামে আঁকযোগ্য ফোল্ডারটি নির্বাচিত প্রকারের সাথে শেষ করুন ক্লিক করুন)।

সীমানা আকৃতি নির্ধারণকারী এক্সএমএল প্রবেশ করানো হয়েছে:

<?xml version="1.0" encoding="UTF-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <corners android:radius="20dp"/>
    <padding android:left="10dp" android:right="10dp" android:top="10dp" android:bottom="10dp"/>
    <solid android:color="#CCCCCC"/>
</shape>

বৈশিষ্ট্যটি android:shapeআয়তক্ষেত্রে সেট করা হয়েছে (শেপ ফাইলগুলি ওভাল, লাইন এবং রিংকে সমর্থন করে)। আয়তক্ষেত্রটি হ'ল ডিফল্ট মান, সুতরাং এটি নির্দিষ্ট করে যদি আয়তক্ষেত্রটি সংজ্ঞায়িত করা হয় তবে এই বৈশিষ্ট্যটি রেখে দেওয়া যেতে পারে। আকারে ফাইলের বিশদ তথ্যের জন্য http://developer.android.com/guide/topics/resources/drawable-resource.html# আকারে অ্যান্ড্রয়েড ডকুমেন্টেশন দেখুন ।

উপাদান কোণগুলি আয়তাকার কোণগুলি বৃত্তাকারে সেট করে। প্রতিটি কোণায় একটি পৃথক ব্যাসার্ধ সেট করা সম্ভব (অ্যান্ড্রয়েড রেফারেন্স দেখুন)।

সীমানা ওভারল্যাপিংয়ের বিষয়বস্তুগুলি রোধ করতে, প্যাডিং বৈশিষ্ট্যগুলি বিন্যাসের যে সামগ্রীটিতে আকৃতি প্রয়োগ করা হয় তাতে স্থানান্তর করতে ব্যবহৃত হয়।

এখানকার সীমানা রঙ হালকা ধূসরতে সেট করা হয়েছে (সিসিসিসিসিসি হেক্সাডেসিমাল আরজিবি মান)।

আকারগুলি গ্রেডিয়েন্টগুলিও সমর্থন করে, তবে এটি এখানে ব্যবহৃত হচ্ছে না। আবার, গ্রেডিয়েন্ট কীভাবে সংজ্ঞায়িত হয় তা দেখতে অ্যান্ড্রয়েড সংস্থানগুলি দেখুন। আকারটি ব্যবহার করে ল্যাপআউটে প্রয়োগ করা হয় android:background="@drawable/customborder"

বিন্যাসের মধ্যে অন্যান্য মতামতগুলি স্বাভাবিক হিসাবে যুক্ত করা যায়। এই উদাহরণে, একটি একক পাঠ্য ভিউ যুক্ত করা হয়েছে, এবং পাঠ্যটি সাদা (এফএফএফএফএফএফ হেক্সাডেসিমাল আরজিবি)। পটভূমিটি নীলতে সেট করা হয়েছে, উজ্জ্বলতা হ্রাস করতে কিছু স্বচ্ছতা (A00000FF হেক্সাডেসিমাল আলফা আরজিবি মান)। অবশেষে অল্প পরিমাণে প্যাডিং সহ লেআউটটিকে অন্য লেআউটে রেখে পর্দার প্রান্ত থেকে অফসেট করা হবে। সম্পূর্ণ বিন্যাস ফাইলটি হ'ল:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:padding="5dp">
    <LinearLayout android:orientation="vertical"
                  android:layout_width="fill_parent"
                  android:layout_height="fill_parent"
                  android:background="@drawable/customborder">
        <TextView android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:text="Text View"
                android:textSize="20dp"
                android:textColor="#FFFFFF"
                android:gravity="center_horizontal"
                android:background="#A00000FF" />
    </LinearLayout>
</LinearLayout>

কেবলমাত্র লিঙ্কের উত্তরগুলি অত্যন্ত নিরুৎসাহিত হয়, কারণ লিঙ্কগুলি ভবিষ্যতে কোনও সময়ে ভাঙতে থাকে। আপনার উত্তরের প্রাসঙ্গিক অংশটিকে এই উত্তরে টানুন যাতে লিঙ্কটি না দেয় তথ্যের তথ্য উপলব্ধ থাকে।
অ্যান্ডি

8

আমার এটি খুব সহজভাবে করার একটি উপায় আছে এবং আমি এটি ভাগ করতে চাই।

আমি যখন টেক্সট ভিউগুলি বর্গক্ষেত্র করতে চাই, আমি কেবল তাদের লিনিয়ারলয়েটে রেখেছি। আমি আমার লিনিয়ারলআউটের পটভূমি রঙ সেট করেছি এবং আমি আমার পাঠ্য ভিউতে একটি মার্জিন যুক্ত করেছি। ফলাফলটি হুবহু আপনি টেক্সটভিউয়ের স্কোয়ার করুন।


2

কনস্ট্যান্টিন বুড়ভের উত্তর পরিবর্তন করা কারণ আমার ক্ষেত্রে কাজ করছে না:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <solid android:color="@android:color/white" />
            <stroke android:width="2dip" android:color="#4fa5d5"/>
            <corners android:radius="7dp"/>
        </shape>
    </item>
</selector>

compileSdkVersion 26 (Android 8.0), minSdkVersion 21 (অ্যান্ড্রয়েড 5.0), টার্গেটএসডিকি ভার্সন 26, বাস্তবায়ন 'com.android.support :appcompat-v7:26.1.0', গ্রেড: 4.1


2

আপনি আপনার পাঠ্য দর্শনের জন্য কাস্টম ব্যাকগ্রাউন্ড তৈরি করতে পারেন। পদক্ষেপ 1. আপনার প্রকল্পে যান। ২. সংস্থানগুলিতে যান এবং আঁকতে সক্ষম করতে ডান ক্লিক করুন। ৩. নতুন -> অঙ্কনযোগ্য রিসোর্স ফাইলের উপর ক্লিক করুন 4.. আপনার ফাইলের নাম দিন 5. ফাইলে নিম্নলিখিত কোডটি আটকান

<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="1dp" android:color="@color/colorBlack" />
<padding android:left="1dp"
    android:top="1dp"
    android:right="1dp"
    android:bottom="1dp" />
<corners android:radius="6dp" />
<solid android:color="#ffffffff" />

  1. আপনার পাঠ্য দেখার জন্য যেখানে আপনি এটি ব্যাকগ্রাউড হিসাবে ব্যবহার করতে চান,

    অ্যান্ড্রয়েড: পটভূমি = "@ অঙ্কনযোগ্য / your_fileName"


1

এখানে আমার 'সরল' সহায়ক শ্রেণি রয়েছে যা সীমান্তের সাথে একটি চিত্র ভিউ দেয় returns এটি কেবল আপনার ইউটিস ফোল্ডারে ফেলে দিন এবং এটিকে কল করুন:

ImageView selectionBorder = BorderDrawer.generateBorderImageView(context, borderWidth, borderHeight, thickness, Color.Blue);

কোডটি এখানে।

/**
 * Because creating a border is Rocket Science in Android.
 */
public class BorderDrawer
{
    public static ImageView generateBorderImageView(Context context, int borderWidth, int borderHeight, int borderThickness, int color)
    {
        ImageView mask = new ImageView(context);

        // Create the square to serve as the mask
        Bitmap squareMask = Bitmap.createBitmap(borderWidth - (borderThickness*2), borderHeight - (borderThickness*2), Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(squareMask);

        Paint paint = new Paint();
        paint.setStyle(Paint.Style.FILL);
        paint.setColor(color);
        canvas.drawRect(0.0f, 0.0f, (float)borderWidth, (float)borderHeight, paint);

        // Create the darkness bitmap
        Bitmap solidColor = Bitmap.createBitmap(borderWidth, borderHeight, Bitmap.Config.ARGB_8888);
        canvas = new Canvas(solidColor);

        paint.setStyle(Paint.Style.FILL);
        paint.setColor(color);
        canvas.drawRect(0.0f, 0.0f, borderWidth, borderHeight, paint);

        // Create the masked version of the darknessView
        Bitmap borderBitmap = Bitmap.createBitmap(borderWidth, borderHeight, Bitmap.Config.ARGB_8888);
        canvas = new Canvas(borderBitmap);

        Paint clearPaint = new Paint();
        clearPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));

        canvas.drawBitmap(solidColor, 0, 0, null);
        canvas.drawBitmap(squareMask, borderThickness, borderThickness, clearPaint);

        clearPaint.setXfermode(null);

        ImageView borderView = new ImageView(context);
        borderView.setImageBitmap(borderBitmap);

        return borderView;
    }
}

আমি কীভাবে ব্যবহার করব selectionBorder?
তাশ পেমিভা

@ টাশপেমিভা বাটন.সেটব্যাকগ্রাউন্ডড্রয়েবল ();
নিনজাঅনসফারি

0

এটি আপনাকে সাহায্য করতে পারে।

<RelativeLayout
    android:id="@+id/textbox"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:background="@android:color/darker_gray" >

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:layout_margin="3dp"
        android:background="@android:color/white"
        android:gravity="center"
        android:text="@string/app_name"
        android:textSize="20dp" />

</RelativeLayout

0

আপনার পাঠ্য দৃশ্যের সীমানা এবং আকারের রঙ হিসাবে পটভূমি রঙের সাথে একটি সীমানা ভিউ তৈরি করুন। সীমানা প্রস্থ হিসাবে সীমানা ভিউ প্যাডিং সেট করুন। পাঠ্য দর্শনটির জন্য আপনি যে রঙটি চান তা হিসাবে পাঠ্য প্রদর্শনের পটভূমির রঙ সেট করুন। এখন সীমান্ত ভিউয়ের ভিতরে আপনার পাঠ্য দর্শন যুক্ত করুন।



0

একটি পাঠ্য ভিউতে সীমানা যুক্ত করার জন্য অনেকগুলি উপায় রয়েছে। android:background="@drawable/textview_bg"সহজটি হ'ল একটি কাস্টম অঙ্কনযোগ্য তৈরি এবং এটি আপনার পাঠ্যদর্শন হিসাবে সেট করা ।

পাঠ্যদর্শন_বিজি.এক্সএমএলটি ড্রয়যোগ্যদের অধীনে যাবে এবং এরকম কিছু হতে পারে। কোণার ব্যাসার্ধ যুক্ত করতে এবং সীমানা যুক্ত করতে আপনার একটি solidবা একটি gradientপটভূমি থাকতে পারে (বা প্রয়োজন না হলে কিছুই নেই) ।cornersstroke

textview_bg.xml

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

        <corners
            android:radius="@dimen/dp_10"/>

        <gradient
            android:angle="225"
            android:endColor="#FFFFFF"
            android:startColor="#E0E0E0" />

        <stroke
            android:width="2dp"
            android:color="#000000"/>

    </shape>

0
  <View
    android:layout_width="match_parent"
    android:layout_height="2dp"
    android:background="@android:color/black" />

এই কোডটি আপনি যেখানেই চান সেখানে রাখতে পারবেন


0

আপনার এক্সএমএল পাঠ্যদর্শনটিতে সেটব্যাকগ্রাউন্ড,

আপনার অঙ্কনযোগ্য ডিরেক্টরিতে rounded_textview.xML ফাইল যুক্ত করুন।

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
   <solid android:color="@android:color/white" />
   <stroke android:width="2dip" android:color="#4f5g52"/>
</shape>

টেক্সটভিউ পটভূমিতে অঙ্কনযোগ্য ফাইল সেট করুন।


-1

আসলে, এটি খুব সহজ। আপনি যদি টেক্সটভিউয়ের পিছনে একটি সাধারণ কালো আয়তক্ষেত্র চান তবে কেবল টেক্সটভিউ ট্যাগগুলির android:background="@android:color/black"মধ্যে যুক্ত করুন । এটার মত:

<TextView
    android:textSize="15pt" android:textColor="#ffa7ff04"
    android:layout_alignBottom="@+id/webView1"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:background="@android:color/black"/>

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