Android में BitmapShader से ImageView के कोने गोल करने का गाइड
यह ट्यूटोरियल दिखाता है कि कैसे Canvas, Paint और BitmapShader का उपयोग करके किसी भी बिटमैप इमेज के कोने गोल (rounded corners) किए जाएं।
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio में File → New Project चुनकर नया प्रोजेक्ट बनाएं।
चरण 2: लेआउट फ़ाइल में कोड जोड़ें
res/layout/activity_main.xml में:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="" />
<ImageView
android:id="@+id/imageView"
android:layout_width="fill_parent"
android:layout_margin="10dp"
android:layout_height="fill_parent" />
</LinearLayout>
चरण 3: MainActivity.java में कोड जोड़ें
src/MainActivity.java में:
package com.example.sample;
import android.graphics.Bitmap;
import android.graphics.BitmapShader;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import android.graphics.Shader;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ImageView;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView = findViewById(R.id.textView);
textView.setTextColor(Color.RED);
textView.setTextSize(20);
ImageView mimageView = findViewById(R.id.imageView);
Bitmap mbitmap = ((BitmapDrawable) getResources().getDrawable(R.drawable.cat)).getBitmap();
Bitmap imageRounded = Bitmap.createBitmap(mbitmap.getWidth(), mbitmap.getHeight(), mbitmap.getConfig());
Canvas canvas = new Canvas(imageRounded);
Paint mpaint = new Paint();
mpaint.setAntiAlias(true);
mpaint.setShader(new BitmapShader(mbitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP));
canvas.drawRoundRect(new RectF(0, 0, mbitmap.getWidth(), mbitmap.getHeight()), 100, 100, mpaint);
mimageView.setImageBitmap(imageRounded);
}
}
मुख्य बिंदु
BitmapShaderमूल बिटमैप को शेडर के रूप में उपयोग करता हैShader.TileMode.CLAMPकिनारों पर क्लैंप करता हैdrawRoundRect()गोल कोनों वाला आयत ड्रॉ करता है- कोने की त्रिज्या (100, 100) पिक्सेल में है - इमेज आकार के अनुसार समायोजित करें
paint.setAntiAlias(true)किनारों को स्मूथ बनाता है
आधुनिक विकल्प (API 21+)
नए Android संस्करणों के लिए RoundRectDrawable या MaterialShapeDrawable का उपयोग करें, या XML में shape ड्रॉएबल बनाएं।
चरण 4: AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="com.example.sample">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
ऐप चलाएं
डिवाइस कनेक्ट करें, Run आइकन पर क्लिक करें और गोल कोनों वाली इमेज देखें।