android: px&dp&sp--margin&padding

px: 像素

dp:设备无关的像素

sp:通常用于指定字体的大小,当用户受该手机显示字体时,sp会随之改变


内边距和外边距

内边距:内容与边框的距离

外边距:内容边框与屏幕边缘的距离


外边距

内边距

Layout_margin

外边距

Padding

内边距

Layout_marginTop

上外边距

paddingTop

上内边距

Layout_marginBottom

下外边距

paddingBottom

下内边距

Layout_marginLeft

左外边距

paddingLeft

左内边距

Layout_marginRight

右外边距

paddingRight

右内边距


我的activity_about布局是不是也存在问题?<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center" android:padding="20dp"> <!-- 软件名称 --> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="公交查询系统" android:textSize="28sp" android:textStyle="bold" android:textColor="#000" android:layout_marginBottom="10dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Bus" android:textSize="18sp" android:textColor="#555" android:layout_marginBottom="80dp" /> <!-- 软件图片 --> <ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/bus" android:layout_marginBottom="100dp"/> <!-- 版本信息 --> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="版本:1.0" android:textSize="16sp" android:layout_marginBottom="20dp" /> <!-- 开发信息 --> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="开发团队:white luminous" android:textSize="16sp" android:layout_marginBottom="10dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="邮箱:support@busapp.cn" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="hao" android:textSize="8sp" android:layout_marginTop="100dp" android:textColor="#EEE"/> </LinearLayout>
10-16
开发文档:鼠害数据列表 GET http://nyzbwlw.com/situation/http/device/mouse/getMouseList 视频需把图片后缀改为mp4 请求参数 参数名 类型 描述 必填 deviceCode String 设备编号 必填 page Int 页码默认为1 可选 size Int 每页显示条数:默认为10 可选 startTime String 开始时间 格式:yyyy-MM-dd HH:mm:ss 可选 endTime String 结束时间 格式:yyyy-MM-dd HH:mm:ss 可选 响应参数 参数名 类型 描述 必填 code Int 状态码:100成功 必填 msg String 状态信息 必填 data Map 返回数据 必填 count Int 总数目 必填 list List 数据集合 必填 eqName String 设备名称 必填 collectionTime String 采集时间 必填 monitorId long 监测id 必填 num Int 老鼠数目 必填 pictureUrl String 图片路径 必填 说明 / 示例 :视频需将图片后缀.jpg改为.mp4 http://nyzbwlw.com/situation/http/device/mouse/getMouseList ?deviceCode= 在浏览器中输入apihttp://nyzbwlw.com/situation/http/device/mouse/getMouseList?deviceCode=SH2025030001&startTime=2025-05-01%2000:00:00&endTime=2025-05-20%2023:59:59响应的数据为{"msg":"操作成功!","code":100,"data":{"count":8,"list":[{"eqName":"SH10-1","collectionTime":"2025-05-07 10:37:40","monitorId":250507103924804,"num":"1","pictureUrl":"https://zzoukeqi.oss-cn-beijing.aliyuncs.com/agro_monitor/upload/mouseImgs/202505/SH2025030001/video_1746585460322.jpg"},{"eqName":"SH10-1","collectionTime":"2025-05-07 10:34:41","monitorId":250507103926622,"num":"1","pictureUrl":"https://zzoukeqi.oss-cn-beijing.aliyuncs.com/agro_monitor/upload/mouseImgs/202505/SH2025030001/video_1746585281135.jpg"}. 严格依据上述开发文档和api返回数据的格式在下面代码中实现通过开发文档中的api获取到用户在datepicker_layout1选择的年月日日期对应的视频数据,有几条数据就在<GridLayout android:id="@+id/thumbnail_grid" android:layout_width="match_parent" android:layout_height="229dp" android:layout_above="@id/video_container" android:layout_alignParentBottom="true" android:background="@android:color/white" android:columnCount="4" android:orientation="horizontal" android:padding="8dp" android:rowCount="2"> <!-- 缩略图 --> <ImageView android:layout_width="100dp" android:layout_height="wrap_content" android:layout_margin="4dp" android:adjustViewBounds="true" android:contentDescription="萤石缩略图" android:src="@drawable/default_thumbnail" /> <!-- 更多缩略图... --> </GridLayout>这一模块动态生成几张"@drawable/default_thumbnail"图片,现在先实现我说的功能的代码。ShuhaiSp.java:package com.jd.projects.wlw.shuhai; import com.jd.projects.wlw.R; import android.app.Dialog; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.DatePicker; import android.widget.ImageButton; import android.widget.TextView; import android.widget.TimePicker; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Locale; public class ShuhaiSp extends AppCompatActivity { private TextView dateText; private Calendar selectedDate = Calendar.getInstance(); private String currentStationId; private String stationName; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.shuhaisp); Intent intent = getIntent(); if (intent != null){ currentStationId = intent.getStringExtra("nsiteid"); stationName = intent.getStringExtra("sitealiasname"); } View fanHui = findViewById(R.id.fanHui); fanHui.setOnClickListener(v -> finish()); dateText = (TextView) findViewById(R.id.date_text); updateDateText(); ImageButton btnDatePicker = (ImageButton) findViewById(R.id.btn_date_picker); btnDatePicker.setOnClickListener(v -> showDatePicker()); } private void showDatePicker() { final Dialog dialog = new Dialog(this); dialog.setContentView(R.layout.datepicker_layout1); dialog.setCancelable(true); // 获取DatePicker final DatePicker datePicker = (DatePicker) dialog.findViewById(R.id.dpPicker); // 获取确定和取消按钮 View btnConfirm = dialog.findViewById(R.id.YES); View btnCancel = dialog.findViewById(R.id.NO); // 初始化日期选择器 datePicker.init( selectedDate.get(Calendar.YEAR), selectedDate.get(Calendar.MONTH), selectedDate.get(Calendar.DAY_OF_MONTH), null ); // 设置按钮事件 btnCancel.setOnClickListener(v -> dialog.dismiss()); btnConfirm.setOnClickListener(v -> { // 获取选择的日期 int year = datePicker.getYear(); int month = datePicker.getMonth(); int day = datePicker.getDayOfMonth(); // 更新选择的日期 selectedDate.set(year, month, day); updateDateText(); dialog.dismiss(); }); dialog.show(); } private void updateDateText() { // 只显示年月日,不显示时间 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()); dateText.setText(sdf.format(selectedDate.getTime())); } } shuhaisp.xml:<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/gradient_background"> <!-- 标题栏 --> <RelativeLayout android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?android:attr/actionBarSize" android:background="#44bd32"> <Button android:id="@+id/fanHui" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginStart="8dp" android:layout_marginEnd="8dp" android:background="@android:color/transparent" android:foreground="?android:attr/selectableItemBackground" android:text="返回" android:textColor="@android:color/white" android:textSize="16sp" /> <TextView android:id="@+id/date_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:layout_gravity="center" android:text="日期显示模块" android:textColor="@android:color/black" android:textSize="18sp" /> <ImageButton android:id="@+id/btn_date_picker" android:layout_width="40dp" android:layout_height="60dp" android:layout_centerVertical="true" android:layout_marginStart="10dp" android:layout_toEndOf="@id/date_text" android:background="?android:attr/selectableItemBackgroundBorderless" android:contentDescription="选择日期" android:src="@drawable/xia1" /> </RelativeLayout> <!-- 底部按钮 --> <LinearLayout android:id="@+id/footer_buttons" android:layout_width="match_parent" android:layout_height="60dp" android:layout_alignParentBottom="true" android:background="@android:color/white" android:orientation="horizontal"> <!-- <Button android:id="@+id/device_location" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="设备定位" android:textSize="19sp" android:background="#44bd32" android:textColor="@android:color/white" />--> </LinearLayout> <!-- 视频播放器容器 --> <RelativeLayout android:id="@+id/video_container" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_above="@id/footer_buttons" android:layout_below="@id/toolbar" android:layout_marginBottom="167dp" android:background="@android:color/black" android:padding="0dp"> <!-- 视频播放器 --> <!-- 播放控制条 --> <VideoView android:id="@+id/video_player" android:layout_width="match_parent" android:layout_height="397dp" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:background="#99000000" android:orientation="horizontal" android:padding="8dp"> <!-- <ImageButton--> <!-- android:id="@+id/btn_play_pause"--> <!-- android:layout_width="40dp"--> <!-- android:layout_height="30dp"--> <!-- android:background="?attr/selectableItemBackgroundBorderless"--> <!-- android:src="@drawable/ic_play_sel" />--> <SeekBar android:id="@+id/video_seekbar" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_weight="1" /> <TextView android:id="@+id/tv_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:text="00:00/00:00" android:textColor="@android:color/white" android:textSize="14sp" /> </LinearLayout> </RelativeLayout> <!-- 缩略图网格 --> <GridLayout android:id="@+id/thumbnail_grid" android:layout_width="match_parent" android:layout_height="229dp" android:layout_above="@id/video_container" android:layout_alignParentBottom="true" android:background="@android:color/white" android:columnCount="4" android:orientation="horizontal" android:padding="8dp" android:rowCount="2"> <!-- 缩略图 --> <ImageView android:layout_width="100dp" android:layout_height="wrap_content" android:layout_margin="4dp" android:adjustViewBounds="true" android:contentDescription="萤石缩略图" android:src="@drawable/default_thumbnail" /> <!-- 更多缩略图... --> </GridLayout> </RelativeLayout>
07-01
请你修改下面代码尽量使用px,并且将内容保存在dimens.xml文件中调用: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:padding="24dp" android:orientation="vertical"> <!-- 标题 --> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="登录" android:textSize="28sp" android:textStyle="bold" android:layout_marginBottom="32dp"/> <!-- 用户名 --> <com.google.android.material.textfield.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content" app:startIconDrawable="@drawable/ic_person" app:hintEnabled="true" android:layout_marginBottom="16dp"> <com.google.android.material.textfield.TextInputEditText android:id="@+id/et_username" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="用户名" /> </com.google.android.material.textfield.TextInputLayout> <!-- 密码 --> <!-- app:endIconMode="password_toggle" 的隐藏问题--> <com.google.android.material.textfield.TextInputLayout android:id="@+id/til_password" android:layout_width="match_parent" android:layout_height="wrap_content" app:startIconDrawable="@drawable/ic_lock" app:passwordToggleEnabled="true" android:layout_marginBottom="24dp"> <com.google.android.material.textfield.TextInputEditText android:id="@+id/et_password" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="textPassword" android:hint="密码" /> </com.google.android.material.textfield.TextInputLayout> <!-- 登录按钮 --> <Button android:id="@+id/btn_login" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="登录" android:backgroundTint="@color/teal_200" android:textColor="@android:color/white" android:layout_marginBottom="16dp"/> <!-- 去注册按钮 --> <Button android:id="@+id/btn_to_register" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="去注册" android:backgroundTint="@color/purple_200" android:textColor="@android:color/white"/> </LinearLayout>
07-18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值