Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:DP中启动器图标的宽度和高度_Android_Xml_User Interface - Fatal编程技术网

Android: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

在android中,我们可以通过屏幕密度定义资源,如LDPI、HDPI和MDPI

我希望构建一个UI,它的文本布局与旁边的ImageView的宽度和高度相同。ImageView承载一个与启动器图标大小相同的图像(HDPI为72px,以此类推)

有没有办法知道图标在“dp”中有一个特定的宽度和高度(没有kwnoi),因此我可以硬编码XML。我认为这是可能的,因为dp独立于设备,但找不到任何方法获取dp中的值

<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
参考资料:


对于您的情况,我有一个更好的解决方案,但它有点复杂。我们开始:

  • 当您无法确定图标大小,但确定它是正方形,并且希望其宽度/高度与图标相同时,请水平放置。您可以执行以下操作:

    android:layout_alignTop=“@+id/holidaylistitem_类型” android:layout_alignBottom=“+id/holidaylistitem_类型”

  • 现在您的TextView位置和高度已固定。然后扩展TextView并执行以下操作:

    @覆盖
    测量时的保护空隙(内部宽度测量等级、内部高度测量等级){

  • 图像视图大小为正方形


  • 你是在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)
        );
    }