यह उदाहरण दर्शाता है कि Android में बिटमैप से वृत्ताकार क्षेत्र को कैसे क्रॉप किया जाए।
चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें।
चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें।
<बटन android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="परिपत्र यह " android:layout_alignParentBottom="true" android:layout_alignParentRight="true"/>
चरण 3 - निम्न कोड को src/MainActivity.java
में जोड़ें <पूर्व>पैकेज com.medkart.sample;import androidx.appcompat.app.AppCompatActivity;import android.content.Context;import android.content.res.Resources;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.ग्राफिक्स.कैनवास;आयात android.ग्राफिक्स.रंग;आयात android.graphics.Paint;import android.graphics.PorterDuff;import android.graphics.PorterDuffXfermode;import android.graphics.Rect;import android.graphics.RectF;import android .os.Bundle;import android.view.View;import android.widget.Button;import android.widget.ImageView;import android.widget.RelativeLayout;सार्वजनिक वर्ग MainActivity AppCompatActivity {निजी प्रसंग mContext; निजी संसाधन mResources; निजी सापेक्ष लयआउट mRelativeLayout; निजी बटन एमबीटीएन; निजी छवि दृश्य mImageView; निजी बिटमैप एमबिटमैप; @Override संरक्षित शून्य पर क्रिएट (बंडल सेव किया गया इंस्टेंसस्टेट) {super.onCreate (savedInstanceState); setContentView(R.layout.activity_main); // एप्लिकेशन संदर्भ प्राप्त करें mContext =getApplicationContext (); // संसाधन प्राप्त करें mResources =getResources (); // XML लेआउट से विजेट संदर्भ प्राप्त करें mRelativeLayout =(RelativeLayout) findViewById(R.id.rl); mImageView =(ImageView) findViewById (R.id.iv); mBTN =(बटन) findViewById (R.id.btn); // बिटमैप संसाधन आईडी प्राप्त करें अंतिम int bitmapResourceID =R.drawable.flower; // ImageView पर एक छवि सेट करें mImageView.setImageBitmap(BitmapFactory.decodeResource(mResources, bitmapResourceID)); // बटन विजेट के लिए एक क्लिक श्रोता सेट करें mBTN.setOnClickListener (नया व्यू। ऑनक्लिक लिस्टनर () {@ ओवरराइड पब्लिक वॉयड ऑनक्लिक (व्यू व्यू) {// ड्रॉएबल रिसोर्सेज से बिटमैप प्राप्त करें mBitmap =BitmapFactory.decodeResource (mResources, bitmapResourceID); / / एक गोलाकार बिटमैप बनाएं mBitmap =getCircularBitmap(mBitmap); // सर्कुलर बिटमैप के चारों ओर एक बॉर्डर जोड़ें mBitmap =addBorderToCircularBitmap(mBitmap, 15, Color.WHITE); // सर्कुलर बिटमैप के चारों ओर एक छाया जोड़ें mBitmap =addShadowToCircularBitmap(mBitmap, 4, Color .LTGRAY); // ImageView छवि को ड्रॉएबल ऑब्जेक्ट के रूप में सेट करें mImageView.setImageBitmap(mBitmap); }}); } संरक्षित बिटमैप getCircularBitmap (बिटमैप srcBitmap) {// बॉर्डर के साथ सर्कुलर बिटमैप चौड़ाई की गणना करें int SquareBitmapWidth =Math.min (srcBitmap.getWidth (), srcBitmap.getHeight ()); // बिटमैप बिटमैप का एक नया उदाहरण शुरू करें dstBitmap =Bitmap.createBitmap (squareBitmapWidth, // Width SquareBitmapWidth, // ऊंचाई Bitmap.Config.ARGB_8888 // Config); कैनवास कैनवास =नया कैनवास (dstBitmap); // एक नया पेंट इंस्टेंस शुरू करें पेंट पेंट =नया पेंट (); पेंट.सेटएंटीअलियास (सच); रेक्ट रेक्ट =नया रेक्ट (0, 0, स्क्वायर बिटमैपविड्थ, स्क्वायर बिटमैपविड्थ); RectF rectF =नया RectF (रेक्ट); कैनवास.ड्राओवल (रेक्टएफ, पेंट); पेंट.सेटएक्सफेरमोड (नया पोर्टरडफएक्सफेरमोड (पोर्टरडफ.मोड.एसआरसी_आईएन)); // कॉपी किए गए बिटमैप के बाएँ और ऊपर की गणना करें फ्लोट बाएँ =(squareBitmapWidth-srcBitmap.getWidth ())/2; फ्लोट टॉप =(वर्ग बिटमैपविड्थ-srcBitmap.getHeight ())/2; कैनवास.ड्राबिटमैप (srcBitmap, बाएँ, ऊपर, पेंट); // इस बिटमैप से जुड़ी मूल वस्तु को मुक्त करें। srcBitmap.recycle (); // सर्कुलर बिटमैप रिटर्न dstBitmap लौटाएं; ] // एक नए बिटमैप को इनिशियलाइज़ करें ताकि इसे बॉर्डर वाला सर्कुलर बिटमैप बिटमैप dstBitmap =Bitmap.createBitmap (dstBitmapWidth, dstBitmapWidth, Bitmap.Config.ARGB_8888); // एक नया कैनवास उदाहरण आरंभ करें कैनवास कैनवास =नया कैनवास (dstBitmap); // कैनवास कैनवास के लिए स्रोत बिटमैप ड्रा करें। ड्राबिटमैप (srcBitmap, BorderWidth, BorderWidth, null); // बॉर्डर पेंट करने के लिए एक नया पेंट इंस्टेंस शुरू करें पेंट पेंट =नया पेंट (); पेंट.सेटकलर (बॉर्डर कलर); पेंट.सेट स्टाइल (पेंट.स्टाइल.स्ट्रोक); पेंट.सेटस्ट्रोकविड्थ (बॉर्डरविड्थ); पेंट.सेटएंटीअलियास (सच); कैनवास.ड्रासर्कल (कैनवास.गेटविड्थ () / 2, // सीएक्स कैनवास। गेटविड्थ () / 2, // साइ कैनवास। गेटविड्थ ()/2 - बॉर्डरविड्थ / 2, // रेडियस पेंट // पेंट); // इस बिटमैप से जुड़ी मूल वस्तु को मुक्त करें। srcBitmap.recycle (); // बॉर्डर वाले सर्कुलर बिटमैप रिटर्न dstBitmap; ] बिटमैप dstBitmap =Bitmap.createBitmap(dstBitmapWidth,dstBitmapWidth, Bitmap.Config.ARGB_8888); // एक नया कैनवास उदाहरण आरंभ करें कैनवास कैनवास =नया कैनवास (dstBitmap); कैनवास.ड्राबिटमैप (srcBitmap, शैडोविड्थ, शैडोविड्थ, नल); // गोलाकार बिटमैप छाया खींचने के लिए पेंट पेंट पेंट =नया पेंट (); पेंट.सेटकोलर (छाया रंग); पेंट.सेट स्टाइल (पेंट.स्टाइल.स्ट्रोक); पेंट.सेटस्ट्रोकविड्थ (शैडोविड्थ); पेंट.सेटएंटीअलियास (सच); // सर्कुलर बिटमैप कैनवास के चारों ओर छाया बनाएं। ड्रा सर्कल (dstBitmapWidth / 2, // cx dstBitmapWidth / 2, // cy dstBitmapWidth / 2 - शैडोविड्थ / 2, // रेडियस पेंट // पेंट); srcBitmap.recycle (); डीएसटीबिटमैप लौटाएं; }}पूर्व>चरण 4 - निम्न कोड को Manifests/AndroidManifest.xml
में जोड़ें<एप्लिकेशन एंड्रॉइड:अनुमति बैकअप ="सच" एंड्रॉइड:आइकन ="@ मिपमैप / आईसी_लॉन्चर" एंड्रॉइड:लेबल ="@ स्ट्रिंग / ऐप_नाम" एंड्रॉइड:राउंडआईकॉन ="@ मिपमैप / आईसी_लॉन्चर_राउंड" एंड्रॉइड:सपोर्ट आरटीएल ="सच" एंड्रॉइड :theme="@style/AppTheme"> <गतिविधि android:name=".MainActivity"> <इरादे-फ़िल्टर> <कार्रवाई android:name="android.intent.action.MAIN" /> <श्रेणी android:name=" android.intent.category.LAUNCHER" />
आइए आपके एप्लिकेशन को चलाने का प्रयास करते हैं। मुझे लगता है कि आपने अपने वास्तविक Android मोबाइल डिवाइस को अपने कंप्यूटर से कनेक्ट कर लिया है। एंड्रॉइड स्टूडियो से ऐप चलाने के लिए, अपने प्रोजेक्ट की गतिविधि फाइलों में से एक खोलें और रन पर क्लिक करें टूलबार से आइकन। एक विकल्प के रूप में अपने मोबाइल डिवाइस का चयन करें और फिर अपने मोबाइल डिवाइस की जांच करें जो आपकी डिफ़ॉल्ट स्क्रीन प्रदर्शित करेगा -