Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

Android में सर्कुलर ImageView पर शैडो और बॉर्डर कैसे जोड़ें?

यह उदाहरण दर्शाता है कि Android में प्रोग्रामेटिकली Bitmap मैनिपुलेशन करके सर्कुलर ImageView पर बॉर्डर और शैडो कैसे जोड़ा जाता है।

चरण 1: नया प्रोजेक्ट बनाएं

Android Studio में File → New Project।

चरण 2: लेआउट XML

res/layout/activity_main.xml:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="https://schemas.android.com/apk/res/android" 
    xmlns:app="https://schemas.android.com/apk/res-auto" 
    xmlns:tools="https://schemas.android.com/tools" 
    android:id="@+id/rl" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:padding="16dp" 
    tools:context=".MainActivity"> 
    <ImageView 
        android:id="@+id/iv" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_centerInParent="true" 
        android:contentDescription="इमेज" /> 
    <Button 
        android:id="@+id/btn_circular" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignParentBottom="true" 
        android:layout_alignParentEnd="true" 
        android:text="सर्कुलर बनाएं" /> 
</RelativeLayout>

चरण 3: MainActivity.java

package com.app.sample; 
import androidx.appcompat.app.AppCompatActivity; 
import androidx.core.graphics.drawable.RoundedBitmapDrawable; 
import androidx.core.graphics.drawable.RoundedBitmapDrawableFactory; 
import android.content.Context; 
import android.content.res.Resources; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.graphics.Canvas; 
import android.graphics.Color; 
import android.graphics.Paint; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.ImageView; 
import android.widget.RelativeLayout; 

public class MainActivity extends AppCompatActivity { 
    private Context mContext; 
    private Resources mResources; 
    private RelativeLayout mRelativeLayout; 
    private Button mBtnCircular; 
    private ImageView mImageView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 
        
        mContext = getApplicationContext(); 
        mResources = getResources(); 
        mRelativeLayout = findViewById(R.id.rl); 
        mImageView = findViewById(R.id.iv); 
        mBtnCircular = findViewById(R.id.btn_circular); 
        
        final Bitmap srcBitmap = BitmapFactory.decodeResource(mResources, R.drawable.flower); 
        mImageView.setImageBitmap(srcBitmap); 
        
        mBtnCircular.setOnClickListener(view -> { 
            Paint paint = new Paint(); 
            int srcWidth = srcBitmap.getWidth(); 
            int srcHeight = srcBitmap.getHeight(); 
            int borderWidth = 25; 
            int shadowWidth = 10; 
            
            // डेस्टिनेशन बिटमैप साइज़ (वर्गाकार)
            int size = Math.min(srcWidth, srcHeight) + borderWidth * 2; 
            Bitmap dstBitmap = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888); 
            Canvas canvas = new Canvas(dstBitmap); 
            
            // बैकग्राउंड सफेद
            canvas.drawColor(Color.WHITE); 
            
            // मूल इमेज सेंटर में ड्रॉ करें
            canvas.drawBitmap(srcBitmap, 
                (size - srcWidth) / 2f, 
                (size - srcHeight) / 2f, 
                null); 
            
            // व्हाइट बॉर्डर ड्रॉ करें (इमेज के चारों ओर)
            paint.setStyle(Paint.Style.STROKE); 
            paint.setStrokeWidth(borderWidth * 2); 
            paint.setColor(Color.WHITE); 
            canvas.drawCircle(size / 2f, size / 2f, size / 2f, paint); 
            
            // ग्रे शैडो ड्रॉ करें
            paint.setColor(Color.LTGRAY); 
            paint.setStrokeWidth(shadowWidth); 
            canvas.drawCircle(size / 2f, size / 2f, size / 2f, paint); 
            
            // RoundedBitmapDrawable से सर्कुलर बनाएं
            RoundedBitmapDrawable roundedDrawable = RoundedBitmapDrawableFactory.create(mResources, dstBitmap); 
            roundedDrawable.setCircular(true); 
            roundedDrawable.setAntiAlias(true); 
            mImageView.setImageDrawable(roundedDrawable); 
        }); 
    } 
}

चरण 4: AndroidManifest.xml

मानक मैनिफेस्ट।

मॉडर्न अल्टरनेटिव: XML शेप ड्रॉएबल (सरल और बेहतर)

बिटमैप मैनिपुलेशन के बजाय XML ड्रॉएबल उपयोग करें:

<!-- res/drawable/circle_with_border.xml --> 
<layer-list xmlns:android="https://schemas.android.com/apk/res/android"> 
    <!-- शैडो --> 
    <item> 
        <shape android:shape="oval"> 
            <solid android:color="#CCCCCC" /> 
            <size android:width="200dp" android:height="200dp" /> 
        </shape> 
    </item> 
    <!-- बॉर्डर --> 
    <item android:bottom="4dp" android:right="4dp" android:top="4dp" android:left="4dp"> 
        <shape android:shape="oval"> 
            <solid android:color="@android:color/white" /> 
            <size android:width="192dp" android:height="192dp" /> 
        </shape> 
    </item> 
    <!-- इमेज --> 
    <item android:bottom="8dp" android:right="8dp" android:top="8dp" android:left="8dp"> 
        <bitmap android:src="@drawable/flower" android:gravity="center" /> 
    </item> 
</layer-list>

फिर ImageView में: android:background="@drawable/circle_with_border"

ऐप चलाएं

डिवाइस कनेक्ट करें, Run करें। "सर्कुलर बनाएं" बटन दबाकर इमेज पर बॉर्डर और शैडो देखें।

Android में सर्कुलर ImageView पर शैडो और बॉर्डर कैसे जोड़ें?

  1. Android ऐप में ImageView को गोल कोनों वाला कैसे बनाएं? Android ऐप में ImageView को गोल कोनों वाला कैसे बनाएं?

    Android में BitmapShader से ImageView के कोने गोल करने का गाइड यह ट्यूटोरियल दिखाता है कि कैसे Canvas, Paint और BitmapShader का उपयोग करके किसी भी बिटमैप इमेज के कोने गोल (rounded corners) किए जाएं। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनकर नया प्रोजेक्ट बनाएं। चरण 2:

  1. एंड्रॉइड में ImageView की ऊंचाई और चौड़ाई कैसे प्राप्त करें? एंड्रॉइड में ImageView की ऊंचाई और चौड़ाई कैसे प्राप्त करें?

    रनटाइम पर ImageView के आयाम प्राप्त करना यह उदाहरण दर्शाता है कि बटन क्लिक पर ImageView की वास्तविक ऊंचाई और चौड़ाई कैसे प्राप्त करें। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनें। चरण 2: लेआउट में ImageView, बटन और TextView जोड़ें res/layout/activity_main.xml: <?xml v

  1. एंड्रॉइड ऐप में ImageView में इमेज कैसे लोड और प्रदर्शित करें? एंड्रॉइड ऐप में ImageView में इमेज कैसे लोड और प्रदर्शित करें?

    बटन क्लिक पर ड्रॉएबल रिसोर्स से इमेज बदलें यह उदाहरण दर्शाता है कि ImageView में ड्रॉएबल रिसोर्स से इमेज कैसे लोड करें और बटन क्लिक पर बदलें। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनें। चरण 2: लेआउट में ImageView और बटन res/layout/activity_main.xml: <?xml version=1.0