android dp、px、drawable后缀对应关系

本文详细介绍了不同屏幕密度下DP(Density-independent Pixel)与PX(Pixel)之间的换算比例,包括ldpi、mdpi、hdpi、xhdpi、xxhdpi等不同屏幕密度标准。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ldpi 120dpi 1dp=0.75px

mdpi 160dpi 1dp=1px

hdpi 240dpi 1dp=1.5px

xhdpi 320dpi 1dp=2px

xxhdpi 480dpi 1dp=3px

开发文档:鼠害数据列表 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值