调整页面组件

实现截图功能
chenghonghao_branch
MikkoAyaka 1 year ago
parent a79550ee1c
commit 746392a6f6

@ -13,6 +13,12 @@
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <!-- 往SDCard写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RESTART_PACKAGES" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<application
android:icon="@drawable/icon"

@ -0,0 +1,15 @@
package wificar;
public class Configuration {
public String videoUrl = "http://192.168.1.1:8080/?action=stream";
public String controlIp = "192.168.1.1";
public String controlPort = "2001";
public boolean needSaveScreenShot = false;
private Configuration(){}
private static Configuration INSTANCE;
public static Configuration getInstance() {
if(INSTANCE == null) INSTANCE = new Configuration();
return INSTANCE;
}
}

@ -27,7 +27,7 @@ import my.wificar.R;
public class MyMainFrm extends Activity {
EditText CameraIP, ControlIP, Port;
// EditText CameraIP, ControlIP, Port;
LinearLayout Button_go;
LinearLayout Button_set;
String videoUrl, controlUrl, port;
@ -55,16 +55,12 @@ public class MyMainFrm extends Activity {
setContentView(R.layout.mymainfrm);
CameraIP = findViewById(R.id.editIP);
ControlIP = findViewById(R.id.ip);
Port = findViewById(R.id.port);
Button_go = findViewById(R.id.button_go);
Button_set = findViewById(R.id.button_set);
videoUrl = CameraIP.getText().toString();
controlUrl = ControlIP.getText().toString();
port = Port.getText().toString();
videoUrl = Configuration.getInstance().videoUrl;
controlUrl = Configuration.getInstance().controlIp;
port = Configuration.getInstance().controlPort;
Button_go.requestFocusFromTouch();
Button_set.requestFocusFromTouch();

@ -21,6 +21,7 @@ import android.graphics.Rect;
import android.graphics.YuvImage;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.util.AttributeSet;
@ -45,6 +46,7 @@ import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.ByteBuffer;
@ -377,6 +379,10 @@ public class MySurfaceView extends SurfaceView implements Callback {
false);
//TODO »ñÈ¡µ½ bitmap ÁË
if(Configuration.getInstance().needSaveScreenShot) {
saveBitmap(mBitmap);
Configuration.getInstance().needSaveScreenShot = false;
}
detectOnModel(mBitmap);
canvas.drawBitmap(
mBitmap,
@ -457,6 +463,17 @@ public class MySurfaceView extends SurfaceView implements Callback {
private static boolean useCamera = true;
private void saveBitmap(Bitmap bmp) throws IOException {
File childFolder = Environment.getExternalStoragePublicDirectory(Environment
.DIRECTORY_PICTURES);
File imageFile = new File(childFolder.getAbsolutePath() + "/" + System.currentTimeMillis
() + ".jpg");
OutputStream fOut = new FileOutputStream(imageFile);
bmp.compress(Bitmap.CompressFormat.JPEG, 60, fOut);//½«bgÊä³öÖÁÎļþ
fOut.flush();
fOut.close(); // do not forget to close the stream
activity.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(imageFile)));
}
private void detectOnModel(Bitmap image) {
startTime = System.currentTimeMillis();
detectService.execute(() -> {
@ -520,11 +537,14 @@ public class MySurfaceView extends SurfaceView implements Callback {
protected Bitmap detectAndDraw(Bitmap image) {
Box[] result = null;
KeyPoint[] keyPoints = null;
KeyPoint[] keyPoints;
if (USE_MODEL == YOLOV5S) {
keyPoints = null;
result = YOLOv5.detect(image, threshold, nms_threshold);
} else if (USE_MODEL == SIMPLE_POSE) {
keyPoints = SimplePose.detect(image);
} else {
keyPoints = null;
}
if (result == null && keyPoints == null) {
detectCamera.set(false);

@ -1,32 +1,40 @@
package wificar;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.hardware.display.DisplayManager;
import android.hardware.display.VirtualDisplay;
import android.media.MediaScannerConnection;
import android.media.projection.MediaProjection;
import android.media.projection.MediaProjectionManager;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.os.Message;
import android.os.StrictMode;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Surface;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.Toast;
import androidx.annotation.BinderThread;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.URL;
import java.net.UnknownHostException;
import java.sql.Time;
import java.util.Timer;
import java.util.TimerTask;
import my.wificar.R;
@ -37,9 +45,11 @@ public class MyVideo extends Activity {
URL videoUrl;
MySurfaceView r;
OutputStream socketWriter;
private ImageButton TakePhotos;
private ImageButton ViewPhotos;
InputStream socketReader;
SocketListener socketListener2001;
SoundSocketListener socketListener2002;
private Socket socket;
private Socket soundSocket;
private RockerView rockerView;
private long exitTime = 0;
@ -54,8 +64,6 @@ public class MyVideo extends Activity {
StrictMode.setThreadPolicy(policy);
}
r = findViewById(R.id.mySurfaceViewVideo);
TakePhotos = findViewById(R.id.TakePhoto);
ViewPhotos = findViewById(R.id.ViewPhoto);
Intent intent = getIntent();
//从Intent当中根据key取得value
@ -65,31 +73,13 @@ public class MyVideo extends Activity {
Log.d("wifirobot", "control is :++++" + CtrlIp);
Log.d("wifirobot", "CtrlPort is :++++" + CtrlPort);
r.GetCameraIP(CameraIp);
TakePhotos.setOnClickListener(arg0 -> {
// TODO Auto-generated method stub
if (null != Constant.handler) {
Message message = new Message();
message.what = 1;
Constant.handler.sendMessage(message);
InitSocket(this);
}
});
ViewPhotos.setOnClickListener(arg0 -> {
// TODO Auto-generated method stub
Intent intent1 = new Intent();
intent1.setClass(MyVideo.this, BgPictureShowActivity.class);
//ͨ¹ýIntent¶ÔÏóÆô¶¯ÁíÍâÒ»¸öActivity
MyVideo.this.startActivity(intent1);
});
new Thread(()->InitSocket()).run();
}
public void InitSocket() {
public void InitSocket(Activity activity) {
try {
socket = new Socket(InetAddress.getByName(CtrlIp), Integer.parseInt(CtrlPort));
soundSocket = new Socket(InetAddress.getByName(CtrlIp), 2002);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
@ -99,19 +89,21 @@ public class MyVideo extends Activity {
}
try {
socketWriter = socket.getOutputStream();
socketReader = socket.getInputStream();
socketListener2001 = new SocketListener(activity,socketReader);
socketListener2002 = new SoundSocketListener(activity,soundSocket.getInputStream());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
rockerView = new RockerView(this,socketWriter,this.getApplicationContext(),null);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(1000,1000);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(500,500);
addContentView(rockerView,params);
//Toast.makeText(this,"初始化网络失败!"+e.getMessage(),Toast.LENGTH_LONG).show();
}
public void onDestroy() {
super.onDestroy();
}
@Override

@ -23,8 +23,8 @@ public class RockerView extends View{
Paint backPaint = new Paint(); // 背景画笔
Paint bubblePaint = new Paint(); // 气泡画笔
Paint rectfPaint = new Paint();
float bubbleX = 300, bubbleY = 700; // 定义气泡的位置
float backX = 300, backY = 700; // 背景圆的位置
float bubbleX = 0, bubbleY = 0; // 定义气泡的位置
float backX = 0, backY = 0; // 背景圆的位置
int radiusBack = 200, radiusBubble = 100; // 定义背景圆以及气泡的半径
RectF mRectF = new RectF(backX-radiusBack,backY-radiusBack,backX+radiusBack,backY+radiusBack);
Context mContext;

@ -0,0 +1,88 @@
package wificar;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Environment;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.loader.content.AsyncTaskLoader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import my.wificar.R;
public class SocketListener {
private Activity activity;
private InputStream inputStream;
public SocketListener(Activity activity,InputStream inputStream) {
this.activity = activity;
this.inputStream = inputStream;
AsyncTask.execute(()->{
while (true) {
try {
if (inputStream.available() != 0) {
int value = inputStream.read();
int input1 = value % 2;
int input2 = value >> 1;
onMessage1(input1);
onMessage2(input2);
}
} catch (IOException e) {
throw new RuntimeException(e);
}
}
});
AsyncTask.execute(()->{
while(true) {
try {
Thread.sleep(1000);
onMessage1(0);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
});
}
int count = 0;
private void onMessage1(int inputValue) {
//TODO
activity.runOnUiThread(()->{
TextView textComponent = activity.findViewById(R.id.showLive);
ImageView redCircle = activity.findViewById(R.id.redCircle);
ImageView greenCircle = activity.findViewById(R.id.greenCircle);
if(inputValue == 1) {
textComponent.setText("画面中存在生命体");
greenCircle.setVisibility(View.VISIBLE);
redCircle.setVisibility(View.GONE);
count++;
if(count >= 60) {
count = 0;
Configuration.getInstance().needSaveScreenShot = true;
}
} else {
textComponent.setText("画面中未检测到生命体");
greenCircle.setVisibility(View.GONE);
redCircle.setVisibility(View.VISIBLE);
}
});
}
private void onMessage2(int inputValue) {
activity.runOnUiThread(()->{
TextView textView = activity.findViewById(R.id.distance);
textView.setText(inputValue+"");
});
}
}

@ -0,0 +1,54 @@
package wificar;
import android.app.Activity;
import android.os.AsyncTask;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import java.io.IOException;
import java.io.InputStream;
import my.wificar.R;
public class SoundSocketListener {
private Activity activity;
private InputStream inputStream;
public SoundSocketListener(Activity activity, InputStream inputStream) {
this.activity = activity;
this.inputStream = inputStream;
AsyncTask.execute(()->{
while (true) {
try {
if (inputStream.available() != 0) {
if(inputStream.read() == 255) {
int value = inputStream.read();
if(inputStream.read() == 255) {
onMessage(value);
}
}
if(inputStream.read() == 254) {
int value = inputStream.read();
if(inputStream.read() == 254) {
activity.runOnUiThread(()->{
Toast.makeText(activity,"³¬Éù²¨Êý¾Ý£º"+value,Toast.LENGTH_SHORT).show();
});
}
}
}
} catch (IOException e) {
throw new RuntimeException(e);
}
}
});
}
private void onMessage(int inputValue) {
//TODO
activity.runOnUiThread(()->{
Toast.makeText(activity, inputValue, Toast.LENGTH_SHORT).show();
});
}
}

@ -32,7 +32,7 @@
android:id="@+id/button6"
android:layout_width="100dp"
android:layout_height="35dp"
android:layout_marginStart="144dp"
android:layout_marginStart="130dp"
android:text="绝对位置模式"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="@+id/textView"
@ -41,9 +41,9 @@
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="312dp"
android:layout_width="270dp"
android:layout_height="wrap_content"
android:layout_marginStart="50dp"
android:layout_marginStart="5dp"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="@+id/button7"
app:layout_constraintStart_toEndOf="@+id/button7"
@ -62,7 +62,7 @@
android:id="@+id/defaultsetting"
android:layout_width="135dp"
android:layout_height="40dp"
android:layout_marginStart="49dp"
android:layout_marginStart="5dp"
android:layout_marginEnd="50dp"
android:text="恢复默认设置"
android:textSize="15sp"
@ -94,7 +94,7 @@
android:id="@+id/button7"
android:layout_width="100dp"
android:layout_height="35dp"
android:layout_marginStart="32dp"
android:layout_marginStart="5dp"
android:text="相对位置模式"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="@+id/button6"
@ -144,13 +144,14 @@
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/editTextText52"
android:id="@+id/controlPort"
android:layout_width="125dp"
android:layout_height="25dp"
android:layout_height="40dp"
android:clickable="true"
android:ems="10"
android:includeFontPadding="false"
android:inputType="text"
android:text="2001"
android:paddingLeft="16dp"
android:paddingTop="8dp"
android:paddingRight="16dp"
@ -160,22 +161,24 @@
app:layout_constraintStart_toEndOf="@+id/textView55" />
<TextView
android:visibility="gone"
android:id="@+id/textView54"
android:layout_width="100dp"
android:layout_height="25dp"
android:gravity="center"
android:text="视频地址2"
android:text="视频地址2"
android:textSize="16dp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="@+id/textView53"
app:layout_constraintTop_toBottomOf="@+id/textView53" />
<EditText
android:id="@+id/editTextText51"
android:layout_width="492dp"
android:layout_height="25dp"
android:id="@+id/videoUrl"
android:layout_width="350dp"
android:layout_height="40dp"
android:clickable="true"
android:ems="10"
android:text="http://192.168.1.1:8080/?action=stream"
android:includeFontPadding="false"
android:inputType="text"
android:paddingLeft="16dp"
@ -186,22 +189,6 @@
app:layout_constraintBottom_toBottomOf="@+id/textView53"
app:layout_constraintStart_toEndOf="@+id/textView53" />
<EditText
android:id="@+id/editTextText50"
android:layout_width="492dp"
android:layout_height="25dp"
android:clickable="true"
android:ems="10"
android:includeFontPadding="false"
android:inputType="text"
android:paddingLeft="16dp"
android:paddingTop="8dp"
android:paddingRight="16dp"
android:paddingBottom="8dp"
android:textSize="16dp"
app:layout_constraintBottom_toBottomOf="@+id/textView54"
app:layout_constraintStart_toEndOf="@+id/textView54" />
<EditText
android:id="@+id/editTextText48"
android:layout_width="125dp"
@ -223,7 +210,7 @@
android:layout_width="100dp"
android:layout_height="25dp"
android:gravity="center"
android:text="控制端口"
android:text="云台灵敏度"
android:textSize="16dp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@+id/editTextText25"
@ -234,7 +221,7 @@
android:layout_width="100dp"
android:layout_height="25dp"
android:gravity="center"
android:text="右后"
android:text="右后"
android:textSize="16dp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@+id/editTextText37"
@ -261,7 +248,7 @@
android:layout_width="100dp"
android:layout_height="25dp"
android:gravity="center"
android:text="后退"
android:text="后退"
android:textSize="16dp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@+id/editTextText_left"
@ -288,7 +275,7 @@
android:layout_width="100dp"
android:layout_height="25dp"
android:gravity="center"
android:text="右转"
android:text="右转"
android:textSize="16dp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@+id/editTextText_left"
@ -347,7 +334,7 @@
android:layout_width="100dp"
android:layout_height="25dp"
android:gravity="center"
android:text="右旋转"
android:text="右旋转"
android:textSize="16dp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@+id/editTextText42"
@ -358,7 +345,7 @@
android:layout_width="100dp"
android:layout_height="25dp"
android:gravity="center"
android:text="右前"
android:text="右前"
android:textSize="16dp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@+id/editTextText38"
@ -381,11 +368,12 @@
app:layout_constraintStart_toEndOf="@+id/textView41" />
<EditText
android:id="@+id/editTextText41"
android:id="@+id/controlIp"
android:layout_width="125dp"
android:layout_height="25dp"
android:layout_height="40dp"
android:clickable="true"
android:ems="10"
android:text="192.168.1.1"
android:includeFontPadding="false"
android:inputType="text"
android:paddingLeft="16dp"
@ -482,7 +470,7 @@
android:layout_height="25dp"
android:layout_marginStart="48dp"
android:gravity="center"
android:text="左后"
android:text="左后"
android:textSize="16dp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
@ -494,7 +482,7 @@
android:layout_height="25dp"
android:layout_marginStart="48dp"
android:gravity="center"
android:text="左旋转"
android:text="左旋转"
android:textSize="16dp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
@ -506,7 +494,7 @@
android:layout_height="25dp"
android:layout_marginStart="48dp"
android:gravity="center"
android:text="停止"
android:text="停止"
android:textSize="16dp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
@ -515,18 +503,18 @@
<TextView
android:id="@+id/textView55"
android:layout_width="100dp"
android:layout_height="25dp"
android:layout_height="40dp"
android:gravity="center"
android:text="云台灵敏度:"
android:text="控制端口"
android:textSize="16dp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@+id/editTextText41"
app:layout_constraintStart_toEndOf="@+id/editTextText41" />
app:layout_constraintBottom_toBottomOf="@+id/controlIp"
app:layout_constraintStart_toEndOf="@+id/controlIp" />
<TextView
android:id="@+id/textView44"
android:layout_width="100dp"
android:layout_height="25dp"
android:layout_height="40dp"
android:layout_marginStart="48dp"
android:gravity="center"
android:text="控制地址"
@ -538,10 +526,10 @@
<TextView
android:id="@+id/textView53"
android:layout_width="100dp"
android:layout_height="25dp"
android:layout_height="40dp"
android:layout_marginStart="48dp"
android:gravity="center"
android:text="视频地址1"
android:text="视频地址"
android:textSize="16dp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
@ -553,7 +541,7 @@
android:layout_height="25dp"
android:layout_marginStart="48dp"
android:gravity="center"
android:text="左前"
android:text="左前"
android:textSize="16dp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
@ -565,20 +553,21 @@
android:layout_height="25dp"
android:layout_marginStart="48dp"
android:gravity="center"
android:text="左转"
android:text="左转"
android:textSize="16dp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView_forward" />
<TextView
android:id="@+id/textView_forward"
android:layout_width="100dp"
android:layout_height="25dp"
android:layout_marginStart="48dp"
android:layout_marginTop="52dp"
android:gravity="center"
android:text="前进:"
android:text="前进"
android:textSize="16dp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
@ -589,6 +578,8 @@
android:layout_width="80dp"
android:layout_height="40dp"
android:text="返回"
android:layout_marginTop="5dp"
android:layout_marginLeft="5dp"
android:textSize="15sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"

@ -7,73 +7,17 @@
android:orientation="vertical"
>
<EditText
android:id="@+id/editIP"
android:layout_width="0dp"
android:layout_height="50dp"
android:text="http://192.168.1.1:8080/?action=stream"
app:layout_constraintBottom_toBottomOf="@+id/textViewIP"
app:layout_constraintStart_toEndOf="@id/textViewIP"
app:layout_constraintTop_toTopOf="@+id/textViewIP"
app:layout_constraintWidth_percent="0.6" />
<TextView
android:id="@+id/textView2"
android:layout_width="0dp"
android:layout_height="50dp"
android:gravity="center"
android:text="控制地址"
app:layout_constraintStart_toStartOf="@+id/textViewIP"
app:layout_constraintTop_toBottomOf="@+id/textViewIP"
app:layout_constraintWidth_percent="0.15" />
<EditText
android:id="@+id/ip"
app:layout_constraintWidth_percent="0.6"
android:layout_width="0dp"
android:layout_height="50dp"
android:text="192.168.1.1"
app:layout_constraintStart_toEndOf="@+id/textViewIP"
app:layout_constraintTop_toBottomOf="@+id/editIP" />
<TextView
android:layout_width="0dp"
android:layout_height="50dp"
android:gravity="center"
android:text="控制端口"
app:layout_constraintStart_toStartOf="@+id/textViewIP"
app:layout_constraintTop_toBottomOf="@+id/textView2"
app:layout_constraintWidth_percent="0.15" />
<EditText
android:id="@+id/port"
android:layout_width="0dp"
android:layout_height="50dp"
android:text="2001"
app:layout_constraintStart_toStartOf="@+id/editIP"
app:layout_constraintTop_toBottomOf="@+id/ip"
app:layout_constraintWidth_percent="0.6" />
<TextView
android:id="@+id/textViewIP"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginStart="90dp"
android:layout_marginTop="100dp"
android:gravity="center"
android:text="视频地址"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_percent="0.15" />
<LinearLayout
android:id="@+id/linearLayout"
android:layout_marginBottom="40dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:gravity="center"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent">
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:id="@+id/button_go"

@ -12,6 +12,25 @@
<!-- android:visibility="visible"-->
<!-- tools:visibility="visible" />-->
<Button
android:id="@+id/menuIcon"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_marginEnd="5dp"
android:layout_marginTop="5dp"
android:layout_alignParentEnd="true"
android:text="菜单"
/>
<LinearLayout
android:id="@+id/droppedMenu"
android:layout_width="100dp"
android:layout_height="200dp"
android:layout_below="@+id/menuIcon"
android:layout_alignParentEnd="true"
android:orientation="vertical"
android:animateLayoutChanges="true"/>
<wificar.MySurfaceView
android:id="@+id/mySurfaceViewVideo"
android:layout_width="match_parent"
@ -22,50 +41,96 @@
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ImageButton
android:id="@+id/TakePhoto"
android:layout_marginTop="5dp"
android:layout_width="66dp"
android:layout_height="55dp"
android:scaleType="centerCrop"
android:layout_marginStart="20dp"
android:src="@drawable/snapshot" />
<ImageButton
android:id="@+id/ViewPhoto"
android:layout_width="66dp"
android:layout_height="55dp"
android:layout_marginTop="5dp"
android:layout_toRightOf="@+id/TakePhoto"
android:layout_x="90dp"
android:layout_marginStart="20dp"
android:scaleType="centerCrop"
android:src="@drawable/look" />
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true"
android:gravity="right"
android:layout_marginTop="15dp"
android:layout_alignParentBottom="true"
android:layout_marginRight="15dp"
>
android:layout_marginBottom="20dp"
android:gravity="right">
<TextView
android:layout_width="wrap_content"
android:layout_height="25dp"
android:layout_marginRight="10dp"
android:text="关节特征识别 启用"
android:textSize="18dp"
android:textColor="@android:color/white"
android:textStyle="bold"/>
android:textSize="18dp"
android:textStyle="bold" />
<ImageView
android:layout_width="25dp"
android:layout_height="25dp"
android:scaleType="centerCrop"
android:src="@drawable/circle" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/linearLayout2"
android:layout_alignEnd="@+id/linearLayout2"
android:layout_marginTop="278dp"
android:layout_marginBottom="20dp">
<TextView
android:id="@+id/showLive"
android:layout_width="wrap_content"
android:layout_height="25dp"
android:layout_marginRight="10dp"
android:text="未检测到生命体"
android:textColor="@android:color/white"
android:textSize="18dp"
android:textStyle="bold" />
<ImageView
android:id="@+id/greenCircle"
android:layout_width="25dp"
android:layout_height="25dp"
android:scaleType="centerCrop"
android:src="@drawable/circle"
android:visibility="gone" />
<ImageView
android:id="@+id/redCircle"
android:layout_width="25dp"
android:layout_height="25dp"
android:scaleType="centerCrop"
android:src="@drawable/red_circle"
android:visibility="visible" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/linearLayout3"
android:layout_alignEnd="@+id/linearLayout3"
android:layout_marginBottom="-255dp"
android:gravity="right">
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginRight="10dp"
android:text="超声波距离"
android:textColor="@android:color/white"
android:textSize="18dp"
android:textStyle="bold" />
<TextView
android:id="@+id/distance"
android:layout_width="wrap_content"
android:layout_height="25dp"
android:scaleType="centerCrop"
android:text="0"
android:textColor="#FFFFFF"
android:textSize="20dp" />
</LinearLayout>
<!-- <ImageView-->
<!-- android:layout_width="wrap_content"-->

Loading…
Cancel
Save