OSDN Git Service

4画面同時撮影・表示をできるところまで。
authorMRSa <mrsa@myad.jp>
Sun, 21 Mar 2021 10:41:54 +0000 (19:41 +0900)
committerMRSa <mrsa@myad.jp>
Sun, 21 Mar 2021 10:41:54 +0000 (19:41 +0900)
app/src/main/java/jp/osdn/gokigen/mangle/liveview/LiveImageViewFragment.kt
app/src/main/java/jp/osdn/gokigen/mangle/liveview/image/CameraLiveViewListenerImpl.kt
app/src/main/java/jp/osdn/gokigen/mangle/scene/SceneChanger.kt
app/src/main/res/layout/liveimage_view.xml

index 0a6f78f..da51e9b 100644 (file)
@@ -104,6 +104,16 @@ class LiveImageViewFragment(private val contentLayoutId: Int = R.layout.liveimag
                     imageView3.visibility = View.GONE
                 }
             }
+            if ((!isCameraControl0)&&(!isCameraControl1))
+            {
+                val area = liveviewView.findViewById<LiveImageView>(R.id.liveview_upper_area)
+                area.visibility = View.GONE
+            }
+            if ((!isCameraControl2)&&(!isCameraControl3))
+            {
+                val area = liveviewView.findViewById<LiveImageView>(R.id.liveview_lower_area)
+                area.visibility = View.GONE
+            }
         }
         catch (e : Exception)
         {
@@ -128,19 +138,19 @@ class LiveImageViewFragment(private val contentLayoutId: Int = R.layout.liveimag
     {
         try
         {
-            if (::cameraControl0.isInitialized)
+            if ((::cameraControl0.isInitialized)&&(isCameraControl0))
             {
                 cameraControl0.captureButtonReceiver(0).onClick(v)
             }
-            if (::cameraControl1.isInitialized)
+            if ((::cameraControl1.isInitialized)&&(isCameraControl1))
             {
                 cameraControl1.captureButtonReceiver(1).onClick(v)
             }
-            if (::cameraControl2.isInitialized)
+            if ((::cameraControl2.isInitialized)&&(isCameraControl2))
             {
                 cameraControl2.captureButtonReceiver(2).onClick(v)
             }
-            if (::cameraControl3.isInitialized)
+            if ((::cameraControl3.isInitialized)&&(isCameraControl3))
             {
                 cameraControl3.captureButtonReceiver(3).onClick(v)
             }
index 289daef..31fd635 100644 (file)
@@ -22,17 +22,17 @@ class CameraLiveViewListenerImpl(private val context: Context) : IImageDataRecei
     private var maxCachePics : Int = 0
     //private var currentCachePics : Int = 0
     private lateinit var imageBitmap : Bitmap
-    private var bitmapConverter : IPreviewImageConverter
-    private lateinit var refresher : ILiveViewRefresher
+    private var bitmapConverter : IPreviewImageConverter = ImageConvertFactory().getImageConverter(0)
+    private val refresher = ArrayList<ILiveViewRefresher>()
 
     init
     {
-        bitmapConverter = ImageConvertFactory().getImageConverter(0)
+        refresher.clear()
     }
 
     fun setRefresher(refresher: ILiveViewRefresher)
     {
-        this.refresher = refresher
+        this.refresher.add(refresher)
         imageBitmap = BitmapFactory.decodeResource(context.resources, R.drawable.a01e1)
         setupLiveviewCache()
     }
@@ -175,9 +175,16 @@ class CameraLiveViewListenerImpl(private val context: Context) : IImageDataRecei
 
     private fun refresh()
     {
-        if (::refresher.isInitialized)
+        try
+        {
+            for (p in refresher)
+            {
+                p.refresh()
+            }
+        }
+        catch (e : Exception)
         {
-            refresher.refresh()
+            e.printStackTrace()
         }
     }
 
index 42d89f2..92b1f3a 100644 (file)
@@ -51,7 +51,7 @@ class SceneChanger(private val activity: FragmentActivity, private val informati
         if (!::liveviewFragment.isInitialized)
         {
             liveviewFragment = LiveImageViewFragment.newInstance()
-            liveviewFragment.setCameraControl(true, cameraControl,true, cameraControl,true, cameraControl,true, cameraControl)
+            liveviewFragment.setCameraControl(true, cameraControl,false, cameraControl,false, cameraControl,false, cameraControl)
         }
         setDefaultFragment(liveviewFragment)
         cameraControl.startCamera(false)
index 72dda30..b601228 100644 (file)
         android:elevation="2dp"
         android:visibility="visible"/>
 
-    <view
-        android:id="@+id/liveViewFinder0"
-        class="jp.osdn.gokigen.mangle.liveview.LiveImageView"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:gravity="center"
-        android:scaleType="fitCenter"
-        android:visibility="visible"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintLeft_toLeftOf="@id/liveViewFinder1"
-        app:layout_constraintTop_toTopOf="@id/liveViewFinder2" />
-
-    <view
-        class="jp.osdn.gokigen.mangle.liveview.LiveImageView"
-        android:id="@+id/liveViewFinder1"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-
-        app:layout_constraintRight_toRightOf="@id/liveViewFinder0"
-        app:layout_constraintLeft_toLeftOf="parent"
-        app:layout_constraintTop_toTopOf="@id/liveViewFinder3"
-        app:layout_constraintBottom_toBottomOf="parent"
+    <LinearLayout
+        android:orientation="vertical"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
 
-        android:gravity="center"
-        android:scaleType="fitCenter"
-        android:visibility="visible" />
+        <LinearLayout
+            android:id="@+id/liveview_upper_area"
+            android:orientation="horizontal"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:visibility="visible">
+            <view
+                android:id="@+id/liveViewFinder0"
+                class="jp.osdn.gokigen.mangle.liveview.LiveImageView"
+                android:layout_width="0dip"
+                android:layout_height="wrap_content"
+                android:gravity="center"
+                android:scaleType="fitCenter"
+                android:layout_weight="1"
+                android:visibility="visible" />
 
-    <view
-        class="jp.osdn.gokigen.mangle.liveview.LiveImageView"
-        android:id="@+id/liveViewFinder2"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
+            <view
+                class="jp.osdn.gokigen.mangle.liveview.LiveImageView"
+                android:id="@+id/liveViewFinder1"
+                android:layout_width="0dip"
+                android:layout_height="wrap_content"
+                android:gravity="center"
+                android:scaleType="fitCenter"
+                android:layout_weight="1"
+                android:visibility="visible" />
+        </LinearLayout>
 
-        app:layout_constraintRight_toRightOf="parent"
-        app:layout_constraintLeft_toLeftOf="@id/liveViewFinder3"
-        app:layout_constraintTop_toTopOf="parent"
-        app:layout_constraintBottom_toBottomOf="@id/liveViewFinder0"
+        <LinearLayout
+            android:id="@+id/liveview_lower_area"
+            android:orientation="horizontal"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:visibility="visible">
 
-        android:gravity="center"
-        android:scaleType="fitCenter"
-        android:visibility="visible" />
-
-    <view
-        class="jp.osdn.gokigen.mangle.liveview.LiveImageView"
-        android:id="@+id/liveViewFinder3"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-
-        app:layout_constraintRight_toRightOf="@id/liveViewFinder2"
-        app:layout_constraintLeft_toLeftOf="parent"
-        app:layout_constraintTop_toTopOf="parent"
-        app:layout_constraintBottom_toBottomOf="@id/liveViewFinder1"
-
-
-        android:gravity="center"
-        android:scaleType="fitCenter"
-        android:visibility="visible" />
+            <view
+                class="jp.osdn.gokigen.mangle.liveview.LiveImageView"
+                android:id="@+id/liveViewFinder2"
+                android:layout_width="0dip"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:gravity="center"
+                android:scaleType="fitCenter"
+                android:visibility="visible" />
 
+            <view
+                android:id="@+id/liveViewFinder3"
+                class="jp.osdn.gokigen.mangle.liveview.LiveImageView"
+                android:layout_width="0dip"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:gravity="center"
+                android:scaleType="fitCenter"
+                android:visibility="visible" />
+        </LinearLayout>
+    </LinearLayout>
 </androidx.constraintlayout.widget.ConstraintLayout>