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

Android ऐप में SurfaceView को पारदर्शी कैसे बनाएं?

Android में SurfaceView को ट्रांसपेरेंट बनाना

यह ट्यूटोरियल दिखाता है कि कैसे SurfaceView को पारदर्शी बनाया जाता है ताकि उसके पीछे के UI एलिमेंट्स दिखाई दें - कैमरा प्रीव्यू, गेम ओवरले, या AR ऐप्स के लिए उपयोगी।

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

Android Studio में नया प्रोजेक्ट बनाएं।

चरण 2: लेआउट में SurfaceView और ओवरले

res/layout/activity_main.xml - RelativeLayout में SurfaceView के ऊपर ImageView:

<?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:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <SurfaceView
        android:id="@+id/cameraSurface"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    <ImageView
        android:id="@+id/IV_MASK"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:src="@drawable/mask"
        android:background="@android:color/transparent" />
</RelativeLayout>

चरण 3: SurfaceView को पारदर्शी बनाने का Java कोड

src/MainActivity.java - SurfaceHolder.Callback इम्प्लीमेंट करें:

package com.app.sample;

import androidx.appcompat.app.AppCompatActivity;
import android.graphics.PixelFormat;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

public class MainActivity extends AppCompatActivity implements SurfaceHolder.Callback {
    private SurfaceView surfaceView;
    private SurfaceHolder surfaceHolder;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        surfaceView = findViewById(R.id.cameraSurface);
        surfaceHolder = surfaceView.getHolder();
        surfaceHolder.addCallback(this);
        
        // महत्वपूर्ण: पारदर्शिता के लिए फॉर्मेट सेट करें
        surfaceHolder.setFormat(PixelFormat.TRANSPARENT);
        
        // Z-order सेट करें ताकि SurfaceView पीछे रहे
        surfaceView.setZOrderOnTop(false);
        surfaceView.setZOrderMediaOverlay(true);
    }

    @Override
    public void surfaceCreated(SurfaceHolder holder) {
        // Surface बनने पर कैमरा/रेंडरिंग शुरू करें
        // holder.setFormat(PixelFormat.TRANSPARENT); // यहां भी सेट कर सकते हैं
    }

    @Override
    public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
        // साइज बदलने पर हैंडल करें
    }

    @Override
    public void surfaceDestroyed(SurfaceHolder holder) {
        // क्लीनअप करें
    }
}

महत्वपूर्ण सेटिंग्स समझाए गए

XML में पारदर्शिता (वैकल्पिक)

<SurfaceView
    android:id="@+id/cameraSurface"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/transparent" />

चरण 4: मैनिफेस्ट

कैमरा परमिशन जोड़ें अगर कैमरा प्रीव्यू के लिए उपयोग कर रहे हैं:

<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" android:required="true" />

उपयोग के मामले

  • कैमरा प्रीव्यू के ऊपर UI ओवरले
  • गेम में HUD एलिमेंट्स
  • AR ऐप्स में वर्चुअल ऑब्जेक्ट्स
  • वीडियो प्लेयर में कस्टम कंट्रोल्स

समस्या निवारण

  • अगर काला बैकग्राउंड दिखे: setFormat(PixelFormat.TRANSPARENT) जांचें
  • अगर ओवरले न दिखे: Z-order सेटिंग्स जांचें
  • परफॉरमेंस के लिए: अनावश्यक रीड्रॉ से बचें
  1. एंड्रॉइड ऐप में TextToSpeech कैसे बनाएं? एंड्रॉइड ऐप में TextToSpeech कैसे बनाएं?

    एंड्रॉइड ऐप में टेक्स्ट-टू-स्पीच (TTS) लागू करना यह उदाहरण दिखाता है कि एंड्रॉइड ऐप में TextToSpeech फीचर कैसे जोड़ा जाता है, जिससे ऐप लिखे गए टेक्स्ट को आवाज़ में बदल सके। चरण 1: नया प्रोजेक्ट बनाएं Android Studio खोलें, File → New Project चुनें और आवश्यक विवरण भरकर नया प्रोजेक्ट बनाएं। चरण 2: ले

  1. Facebook पर Android ऐप कैसे बनाएं? Facebook पर Android ऐप कैसे बनाएं?

    Facebook Developer Console पर ऐप बनाकर App ID प्राप्त करने की चरण-दर-चरण प्रक्रिया। चरण 1: Facebook Developer Console पर ऐप बनाएं developers.facebook.com पर जाएं My Apps → Create App चुनें ऐप नाम और ईमेल दर्ज करें Create App ID पर क्लिक करें चरण 2: Android Studio में SDK जोड़ें प्रोजेक्ट-लेवल bu

  1. विंडोज 10 में विंडोज को पारदर्शी कैसे बनाएं विंडोज 10 में विंडोज को पारदर्शी कैसे बनाएं

    विंडोज एयरो ने वर्षों में डेस्कटॉप विंडोज में कुछ अच्छे प्रभाव जोड़े हैं, लेकिन आज भी, एक विंडो को पारदर्शी बनाने का कोई आधिकारिक तरीका नहीं है। सौभाग्य से, थर्ड-पार्टी टूल हैं जो हमें इस लक्ष्य को प्राप्त करने में मदद कर सकते हैं। आइए पता लगाएं कि पारदर्शी विंडोज कैसे बनाएं और प्रत्येक टूल कहां चमक

© कॉपीराइट https://in.wsxdn.com सर्वाधिकार सुरक्षित
मेथडउद्देश्य
setFormat(PixelFormat.TRANSPARENT)पिक्सेल फॉर्मेट को पारदर्शी बनाता है (ARGB_8888)
setZOrderOnTop(false)SurfaceView को विंडो के पीछे रखता है
setZOrderMediaOverlay(true)मीडिया ओवरले मोड इनेबल करता है