调整页面组件

实现截图功能
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.MOUNT_UNMOUNT_FILESYSTEMS" /> <!-- 往SDCard写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RESTART_PACKAGES" /> <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 <application
android:icon="@drawable/icon" 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 { public class MyMainFrm extends Activity {
EditText CameraIP, ControlIP, Port; // EditText CameraIP, ControlIP, Port;
LinearLayout Button_go; LinearLayout Button_go;
LinearLayout Button_set; LinearLayout Button_set;
String videoUrl, controlUrl, port; String videoUrl, controlUrl, port;
@ -55,16 +55,12 @@ public class MyMainFrm extends Activity {
setContentView(R.layout.mymainfrm); 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_go = findViewById(R.id.button_go);
Button_set = findViewById(R.id.button_set); Button_set = findViewById(R.id.button_set);
videoUrl = CameraIP.getText().toString(); videoUrl = Configuration.getInstance().videoUrl;
controlUrl = ControlIP.getText().toString(); controlUrl = Configuration.getInstance().controlIp;
port = Port.getText().toString(); port = Configuration.getInstance().controlPort;
Button_go.requestFocusFromTouch(); Button_go.requestFocusFromTouch();
Button_set.requestFocusFromTouch(); Button_set.requestFocusFromTouch();

@ -21,6 +21,7 @@ import android.graphics.Rect;
import android.graphics.YuvImage; import android.graphics.YuvImage;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.os.Environment;
import android.os.Handler; import android.os.Handler;
import android.os.Message; import android.os.Message;
import android.util.AttributeSet; import android.util.AttributeSet;
@ -45,6 +46,7 @@ import java.io.FileNotFoundException;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection; import java.net.HttpURLConnection;
import java.net.URL; import java.net.URL;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
@ -377,6 +379,10 @@ public class MySurfaceView extends SurfaceView implements Callback {
false); false);
//TODO »ñÈ¡µ½ bitmap ÁË //TODO »ñÈ¡µ½ bitmap ÁË
if(Configuration.getInstance().needSaveScreenShot) {
saveBitmap(mBitmap);
Configuration.getInstance().needSaveScreenShot = false;
}
detectOnModel(mBitmap); detectOnModel(mBitmap);
canvas.drawBitmap( canvas.drawBitmap(
mBitmap, mBitmap,
@ -457,6 +463,17 @@ public class MySurfaceView extends SurfaceView implements Callback {
private static boolean useCamera = true; 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) { private void detectOnModel(Bitmap image) {
startTime = System.currentTimeMillis(); startTime = System.currentTimeMillis();
detectService.execute(() -> { detectService.execute(() -> {
@ -520,11 +537,14 @@ public class MySurfaceView extends SurfaceView implements Callback {
protected Bitmap detectAndDraw(Bitmap image) { protected Bitmap detectAndDraw(Bitmap image) {
Box[] result = null; Box[] result = null;
KeyPoint[] keyPoints = null; KeyPoint[] keyPoints;
if (USE_MODEL == YOLOV5S) { if (USE_MODEL == YOLOV5S) {
keyPoints = null;
result = YOLOv5.detect(image, threshold, nms_threshold); result = YOLOv5.detect(image, threshold, nms_threshold);
} else if (USE_MODEL == SIMPLE_POSE) { } else if (USE_MODEL == SIMPLE_POSE) {
keyPoints = SimplePose.detect(image); keyPoints = SimplePose.detect(image);
} else {
keyPoints = null;
} }
if (result == null && keyPoints == null) { if (result == null && keyPoints == null) {
detectCamera.set(false); detectCamera.set(false);

@ -1,32 +1,40 @@
package wificar; package wificar;
import android.app.Activity; import android.app.Activity;
import android.content.Context;
import android.content.Intent; 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.Bundle;
import android.os.Environment;
import android.os.Message; import android.os.Message;
import android.os.StrictMode; import android.os.StrictMode;
import android.util.DisplayMetrics;
import android.util.Log; import android.util.Log;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.Surface;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window; import android.view.Window;
import android.view.WindowManager; import android.view.WindowManager;
import android.widget.Button;
import android.widget.ImageButton; import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import android.widget.Toast; 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.io.OutputStream;
import java.net.InetAddress; import java.net.InetAddress;
import java.net.Socket; import java.net.Socket;
import java.net.URL; import java.net.URL;
import java.net.UnknownHostException; import java.net.UnknownHostException;
import java.sql.Time;
import java.util.Timer;
import java.util.TimerTask;
import my.wificar.R; import my.wificar.R;
@ -37,9 +45,11 @@ public class MyVideo extends Activity {
URL videoUrl; URL videoUrl;
MySurfaceView r; MySurfaceView r;
OutputStream socketWriter; OutputStream socketWriter;
private ImageButton TakePhotos; InputStream socketReader;
private ImageButton ViewPhotos; SocketListener socketListener2001;
SoundSocketListener socketListener2002;
private Socket socket; private Socket socket;
private Socket soundSocket;
private RockerView rockerView; private RockerView rockerView;
private long exitTime = 0; private long exitTime = 0;
@ -54,8 +64,6 @@ public class MyVideo extends Activity {
StrictMode.setThreadPolicy(policy); StrictMode.setThreadPolicy(policy);
} }
r = findViewById(R.id.mySurfaceViewVideo); r = findViewById(R.id.mySurfaceViewVideo);
TakePhotos = findViewById(R.id.TakePhoto);
ViewPhotos = findViewById(R.id.ViewPhoto);
Intent intent = getIntent(); Intent intent = getIntent();
//从Intent当中根据key取得value //从Intent当中根据key取得value
@ -65,31 +73,13 @@ public class MyVideo extends Activity {
Log.d("wifirobot", "control is :++++" + CtrlIp); Log.d("wifirobot", "control is :++++" + CtrlIp);
Log.d("wifirobot", "CtrlPort is :++++" + CtrlPort); Log.d("wifirobot", "CtrlPort is :++++" + CtrlPort);
r.GetCameraIP(CameraIp); r.GetCameraIP(CameraIp);
InitSocket(this);
TakePhotos.setOnClickListener(arg0 -> {
// TODO Auto-generated method stub
if (null != Constant.handler) {
Message message = new Message();
message.what = 1;
Constant.handler.sendMessage(message);
} }
}); public void InitSocket(Activity activity) {
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() {
try { try {
socket = new Socket(InetAddress.getByName(CtrlIp), Integer.parseInt(CtrlPort)); socket = new Socket(InetAddress.getByName(CtrlIp), Integer.parseInt(CtrlPort));
soundSocket = new Socket(InetAddress.getByName(CtrlIp), 2002);
} catch (UnknownHostException e) { } catch (UnknownHostException e) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
e.printStackTrace(); e.printStackTrace();
@ -99,19 +89,21 @@ public class MyVideo extends Activity {
} }
try { try {
socketWriter = socket.getOutputStream(); socketWriter = socket.getOutputStream();
socketReader = socket.getInputStream();
socketListener2001 = new SocketListener(activity,socketReader);
socketListener2002 = new SoundSocketListener(activity,soundSocket.getInputStream());
} catch (Exception e) { } catch (Exception e) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
e.printStackTrace(); e.printStackTrace();
} }
rockerView = new RockerView(this,socketWriter,this.getApplicationContext(),null); 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); addContentView(rockerView,params);
//Toast.makeText(this,"初始化网络失败!"+e.getMessage(),Toast.LENGTH_LONG).show(); //Toast.makeText(this,"初始化网络失败!"+e.getMessage(),Toast.LENGTH_LONG).show();
} }
public void onDestroy() { public void onDestroy() {
super.onDestroy(); super.onDestroy();
} }
@Override @Override

@ -23,8 +23,8 @@ public class RockerView extends View{
Paint backPaint = new Paint(); // 背景画笔 Paint backPaint = new Paint(); // 背景画笔
Paint bubblePaint = new Paint(); // 气泡画笔 Paint bubblePaint = new Paint(); // 气泡画笔
Paint rectfPaint = new Paint(); Paint rectfPaint = new Paint();
float bubbleX = 300, bubbleY = 700; // 定义气泡的位置 float bubbleX = 0, bubbleY = 0; // 定义气泡的位置
float backX = 300, backY = 700; // 背景圆的位置 float backX = 0, backY = 0; // 背景圆的位置
int radiusBack = 200, radiusBubble = 100; // 定义背景圆以及气泡的半径 int radiusBack = 200, radiusBubble = 100; // 定义背景圆以及气泡的半径
RectF mRectF = new RectF(backX-radiusBack,backY-radiusBack,backX+radiusBack,backY+radiusBack); RectF mRectF = new RectF(backX-radiusBack,backY-radiusBack,backX+radiusBack,backY+radiusBack);
Context mContext; 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:id="@+id/button6"
android:layout_width="100dp" android:layout_width="100dp"
android:layout_height="35dp" android:layout_height="35dp"
android:layout_marginStart="144dp" android:layout_marginStart="130dp"
android:text="绝对位置模式" android:text="绝对位置模式"
android:textSize="12sp" android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="@+id/textView" app:layout_constraintBottom_toBottomOf="@+id/textView"
@ -41,9 +41,9 @@
<LinearLayout <LinearLayout
android:id="@+id/linearLayout2" android:id="@+id/linearLayout2"
android:layout_width="312dp" android:layout_width="270dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="50dp" android:layout_marginStart="5dp"
android:orientation="horizontal" android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="@+id/button7" app:layout_constraintBottom_toBottomOf="@+id/button7"
app:layout_constraintStart_toEndOf="@+id/button7" app:layout_constraintStart_toEndOf="@+id/button7"
@ -62,7 +62,7 @@
android:id="@+id/defaultsetting" android:id="@+id/defaultsetting"
android:layout_width="135dp" android:layout_width="135dp"
android:layout_height="40dp" android:layout_height="40dp"
android:layout_marginStart="49dp" android:layout_marginStart="5dp"
android:layout_marginEnd="50dp" android:layout_marginEnd="50dp"
android:text="恢复默认设置" android:text="恢复默认设置"
android:textSize="15sp" android:textSize="15sp"
@ -94,7 +94,7 @@
android:id="@+id/button7" android:id="@+id/button7"
android:layout_width="100dp" android:layout_width="100dp"
android:layout_height="35dp" android:layout_height="35dp"
android:layout_marginStart="32dp" android:layout_marginStart="5dp"
android:text="相对位置模式" android:text="相对位置模式"
android:textSize="12sp" android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="@+id/button6" app:layout_constraintBottom_toBottomOf="@+id/button6"
@ -144,13 +144,14 @@
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<EditText <EditText
android:id="@+id/editTextText52" android:id="@+id/controlPort"
android:layout_width="125dp" android:layout_width="125dp"
android:layout_height="25dp" android:layout_height="40dp"
android:clickable="true" android:clickable="true"
android:ems="10" android:ems="10"
android:includeFontPadding="false" android:includeFontPadding="false"
android:inputType="text" android:inputType="text"
android:text="2001"
android:paddingLeft="16dp" android:paddingLeft="16dp"
android:paddingTop="8dp" android:paddingTop="8dp"
android:paddingRight="16dp" android:paddingRight="16dp"
@ -160,22 +161,24 @@
app:layout_constraintStart_toEndOf="@+id/textView55" /> app:layout_constraintStart_toEndOf="@+id/textView55" />
<TextView <TextView
android:visibility="gone"
android:id="@+id/textView54" android:id="@+id/textView54"
android:layout_width="100dp" android:layout_width="100dp"
android:layout_height="25dp" android:layout_height="25dp"
android:gravity="center" android:gravity="center"
android:text="视频地址2" android:text="视频地址2"
android:textSize="16dp" android:textSize="16dp"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintStart_toStartOf="@+id/textView53" app:layout_constraintStart_toStartOf="@+id/textView53"
app:layout_constraintTop_toBottomOf="@+id/textView53" /> app:layout_constraintTop_toBottomOf="@+id/textView53" />
<EditText <EditText
android:id="@+id/editTextText51" android:id="@+id/videoUrl"
android:layout_width="492dp" android:layout_width="350dp"
android:layout_height="25dp" android:layout_height="40dp"
android:clickable="true" android:clickable="true"
android:ems="10" android:ems="10"
android:text="http://192.168.1.1:8080/?action=stream"
android:includeFontPadding="false" android:includeFontPadding="false"
android:inputType="text" android:inputType="text"
android:paddingLeft="16dp" android:paddingLeft="16dp"
@ -186,22 +189,6 @@
app:layout_constraintBottom_toBottomOf="@+id/textView53" app:layout_constraintBottom_toBottomOf="@+id/textView53"
app:layout_constraintStart_toEndOf="@+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 <EditText
android:id="@+id/editTextText48" android:id="@+id/editTextText48"
android:layout_width="125dp" android:layout_width="125dp"
@ -223,7 +210,7 @@
android:layout_width="100dp" android:layout_width="100dp"
android:layout_height="25dp" android:layout_height="25dp"
android:gravity="center" android:gravity="center"
android:text="控制端口" android:text="云台灵敏度"
android:textSize="16dp" android:textSize="16dp"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@+id/editTextText25" app:layout_constraintBottom_toBottomOf="@+id/editTextText25"
@ -234,7 +221,7 @@
android:layout_width="100dp" android:layout_width="100dp"
android:layout_height="25dp" android:layout_height="25dp"
android:gravity="center" android:gravity="center"
android:text="右后" android:text="右后"
android:textSize="16dp" android:textSize="16dp"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@+id/editTextText37" app:layout_constraintBottom_toBottomOf="@+id/editTextText37"
@ -261,7 +248,7 @@
android:layout_width="100dp" android:layout_width="100dp"
android:layout_height="25dp" android:layout_height="25dp"
android:gravity="center" android:gravity="center"
android:text="后退" android:text="后退"
android:textSize="16dp" android:textSize="16dp"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@+id/editTextText_left" app:layout_constraintBottom_toTopOf="@+id/editTextText_left"
@ -288,7 +275,7 @@
android:layout_width="100dp" android:layout_width="100dp"
android:layout_height="25dp" android:layout_height="25dp"
android:gravity="center" android:gravity="center"
android:text="右转" android:text="右转"
android:textSize="16dp" android:textSize="16dp"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@+id/editTextText_left" app:layout_constraintBottom_toBottomOf="@+id/editTextText_left"
@ -347,7 +334,7 @@
android:layout_width="100dp" android:layout_width="100dp"
android:layout_height="25dp" android:layout_height="25dp"
android:gravity="center" android:gravity="center"
android:text="右旋转" android:text="右旋转"
android:textSize="16dp" android:textSize="16dp"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@+id/editTextText42" app:layout_constraintBottom_toBottomOf="@+id/editTextText42"
@ -358,7 +345,7 @@
android:layout_width="100dp" android:layout_width="100dp"
android:layout_height="25dp" android:layout_height="25dp"
android:gravity="center" android:gravity="center"
android:text="右前" android:text="右前"
android:textSize="16dp" android:textSize="16dp"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@+id/editTextText38" app:layout_constraintBottom_toBottomOf="@+id/editTextText38"
@ -381,11 +368,12 @@
app:layout_constraintStart_toEndOf="@+id/textView41" /> app:layout_constraintStart_toEndOf="@+id/textView41" />
<EditText <EditText
android:id="@+id/editTextText41" android:id="@+id/controlIp"
android:layout_width="125dp" android:layout_width="125dp"
android:layout_height="25dp" android:layout_height="40dp"
android:clickable="true" android:clickable="true"
android:ems="10" android:ems="10"
android:text="192.168.1.1"
android:includeFontPadding="false" android:includeFontPadding="false"
android:inputType="text" android:inputType="text"
android:paddingLeft="16dp" android:paddingLeft="16dp"
@ -482,7 +470,7 @@
android:layout_height="25dp" android:layout_height="25dp"
android:layout_marginStart="48dp" android:layout_marginStart="48dp"
android:gravity="center" android:gravity="center"
android:text="左后" android:text="左后"
android:textSize="16dp" android:textSize="16dp"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
@ -494,7 +482,7 @@
android:layout_height="25dp" android:layout_height="25dp"
android:layout_marginStart="48dp" android:layout_marginStart="48dp"
android:gravity="center" android:gravity="center"
android:text="左旋转" android:text="左旋转"
android:textSize="16dp" android:textSize="16dp"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
@ -506,7 +494,7 @@
android:layout_height="25dp" android:layout_height="25dp"
android:layout_marginStart="48dp" android:layout_marginStart="48dp"
android:gravity="center" android:gravity="center"
android:text="停止" android:text="停止"
android:textSize="16dp" android:textSize="16dp"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
@ -515,18 +503,18 @@
<TextView <TextView
android:id="@+id/textView55" android:id="@+id/textView55"
android:layout_width="100dp" android:layout_width="100dp"
android:layout_height="25dp" android:layout_height="40dp"
android:gravity="center" android:gravity="center"
android:text="云台灵敏度:" android:text="控制端口"
android:textSize="16dp" android:textSize="16dp"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@+id/editTextText41" app:layout_constraintBottom_toBottomOf="@+id/controlIp"
app:layout_constraintStart_toEndOf="@+id/editTextText41" /> app:layout_constraintStart_toEndOf="@+id/controlIp" />
<TextView <TextView
android:id="@+id/textView44" android:id="@+id/textView44"
android:layout_width="100dp" android:layout_width="100dp"
android:layout_height="25dp" android:layout_height="40dp"
android:layout_marginStart="48dp" android:layout_marginStart="48dp"
android:gravity="center" android:gravity="center"
android:text="控制地址" android:text="控制地址"
@ -538,10 +526,10 @@
<TextView <TextView
android:id="@+id/textView53" android:id="@+id/textView53"
android:layout_width="100dp" android:layout_width="100dp"
android:layout_height="25dp" android:layout_height="40dp"
android:layout_marginStart="48dp" android:layout_marginStart="48dp"
android:gravity="center" android:gravity="center"
android:text="视频地址1" android:text="视频地址"
android:textSize="16dp" android:textSize="16dp"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
@ -553,7 +541,7 @@
android:layout_height="25dp" android:layout_height="25dp"
android:layout_marginStart="48dp" android:layout_marginStart="48dp"
android:gravity="center" android:gravity="center"
android:text="左前" android:text="左前"
android:textSize="16dp" android:textSize="16dp"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
@ -565,20 +553,21 @@
android:layout_height="25dp" android:layout_height="25dp"
android:layout_marginStart="48dp" android:layout_marginStart="48dp"
android:gravity="center" android:gravity="center"
android:text="左转" android:text="左转"
android:textSize="16dp" android:textSize="16dp"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView_forward" /> app:layout_constraintTop_toBottomOf="@+id/textView_forward" />
<TextView <TextView
android:id="@+id/textView_forward" android:id="@+id/textView_forward"
android:layout_width="100dp" android:layout_width="100dp"
android:layout_height="25dp" android:layout_height="25dp"
android:layout_marginStart="48dp" android:layout_marginStart="48dp"
android:layout_marginTop="52dp" android:layout_marginTop="52dp"
android:gravity="center" android:gravity="center"
android:text="前进:" android:text="前进"
android:textSize="16dp" android:textSize="16dp"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
@ -589,6 +578,8 @@
android:layout_width="80dp" android:layout_width="80dp"
android:layout_height="40dp" android:layout_height="40dp"
android:text="返回" android:text="返回"
android:layout_marginTop="5dp"
android:layout_marginLeft="5dp"
android:textSize="15sp" android:textSize="15sp"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"

@ -7,73 +7,17 @@
android:orientation="vertical" 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 <LinearLayout
android:id="@+id/linearLayout" android:id="@+id/linearLayout"
android:layout_marginBottom="40dp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="bottom" android:layout_gravity="bottom"
android:gravity="center" android:gravity="center"
android:orientation="horizontal" android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent" 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 <LinearLayout
android:id="@+id/button_go" android:id="@+id/button_go"

@ -12,6 +12,25 @@
<!-- android:visibility="visible"--> <!-- android:visibility="visible"-->
<!-- tools: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 <wificar.MySurfaceView
android:id="@+id/mySurfaceViewVideo" android:id="@+id/mySurfaceViewVideo"
android:layout_width="match_parent" android:layout_width="match_parent"
@ -22,43 +41,24 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="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 <LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentStart="true" android:layout_alignParentStart="true"
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
android:gravity="right" android:layout_alignParentBottom="true"
android:layout_marginTop="15dp"
android:layout_marginRight="15dp" android:layout_marginRight="15dp"
> android:layout_marginBottom="20dp"
android:gravity="right">
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="25dp" android:layout_height="25dp"
android:layout_marginRight="10dp" android:layout_marginRight="10dp"
android:text="关节特征识别 启用" android:text="关节特征识别 启用"
android:textSize="18dp"
android:textColor="@android:color/white" android:textColor="@android:color/white"
android:textSize="18dp"
android:textStyle="bold" /> android:textStyle="bold" />
<ImageView <ImageView
@ -66,6 +66,71 @@
android:layout_height="25dp" android:layout_height="25dp"
android:scaleType="centerCrop" android:scaleType="centerCrop"
android:src="@drawable/circle" /> 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> </LinearLayout>
<!-- <ImageView--> <!-- <ImageView-->
<!-- android:layout_width="wrap_content"--> <!-- android:layout_width="wrap_content"-->

Loading…
Cancel
Save