Android:DP中启动器图标的宽度和高度
在android中,我们可以通过屏幕密度定义资源,如LDPI、HDPI和MDPI 我希望构建一个UI,它的文本布局与旁边的ImageView的宽度和高度相同。ImageView承载一个与启动器图标大小相同的图像(HDPI为72px,以此类推) 有没有办法知道图标在“dp”中有一个特定的宽度和高度(没有kwnoi),因此我可以硬编码XML。我认为这是可能的,因为dp独立于设备,但找不到任何方法获取dp中的值Android:DP中启动器图标的宽度和高度,android,xml,user-interface,Android,Xml,User Interface,在android中,我们可以通过屏幕密度定义资源,如LDPI、HDPI和MDPI 我希望构建一个UI,它的文本布局与旁边的ImageView的宽度和高度相同。ImageView承载一个与启动器图标大小相同的图像(HDPI为72px,以此类推) 有没有办法知道图标在“dp”中有一个特定的宽度和高度(没有kwnoi),因此我可以硬编码XML。我认为这是可能的,因为dp独立于设备,但找不到任何方法获取dp中的值 <TextView android:id="@+id/holidaylis
<TextView
android:id="@+id/holidaylistitem_day"
android:layout_width="<X>dp"
android:layout_height="<Y>dp"
android:text="1st"/>
<ImageView
android:id="@+id/holidaylistitem_type"
android:src="@drawable/ic_launcher"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
我需要的是X和Y值,因此两者的大小相同。有一个页面描述了推荐的大小。简而言之,启动器图标是48x48 dp。有4种情况,因为android中有不同类型的设备:
ldpi --> 36x36
mdpi --> 48x48
hdpi -->72x72
xhdpi --> 96x96
检查此项。正如Android Killer所说,“有4种情况,因为Android中有不同类型的设备……”。您可以获得dpi。要将px转换为dp,请使用以下方法:
dp=(px*160)/dpi参考资料:
对于您的情况,我有一个更好的解决方案,但它有点复杂。我们开始:
测量时的保护空隙(内部宽度测量等级、内部高度测量等级){
你是在youtube上有关于PHP、Mysql和Apache2的视频的人吗?这是像素值,对吗?我认为@Sparky是对的,我简单地浏览了一下页面,但忽略了值,即48dp。像素值可以工作,但问题是,必须根据我的知识编写一些布局文件。我喜欢在一个文件中做事情,caz我忘了编辑其他的,一个我做了一个改变。对于你的问题,关于Youtube视频,你是我。我认为你是对的,这也是有意义的,谢谢,我会检查它。我没有阅读完整的链接,错过了细节。非常感谢你指出。
int width = MeasureSpec.getSize(widthMeasureSpec);
int height = MeasureSpec.getSize(heightMeasureSpec);
if (width > height) {
width = height;
}
super.onMeasure(
MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY),
MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY)
);
}