Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/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:如何通过编程获得布局';s宽度_Android_Layout - Fatal编程技术网

Android:如何通过编程获得布局';s宽度

Android:如何通过编程获得布局';s宽度,android,layout,Android,Layout,好吧,标题不是很详尽,但它是我将如何解决这个问题。 如果还有其他解决方案,欢迎使用 我正在2个模拟器中测试我的应用程序,以下是输出: 它是ExpandableListView的一行,左侧包含标题,右侧包含预览。 如果预览太长,则应进行剪切。 问题是在第一种情况下它太短,而在第二种情况下它太长 这是行的布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.a

好吧,标题不是很详尽,但它是我将如何解决这个问题。 如果还有其他解决方案,欢迎使用

我正在2个模拟器中测试我的应用程序,以下是输出:

它是ExpandableListView的一行,左侧包含标题,右侧包含预览。 如果预览太长,则应进行剪切。 问题是在第一种情况下它太短,而在第二种情况下它太长

这是行的布局:

<?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="wrap_content"
    android:background="@drawable/elv_title_1_selector"
    android:gravity="fill_horizontal|center"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/evl_grp_indicator"
        android:layout_width="16dp"
        android:layout_height="16dp"
        android:contentDescription="indDown"
        android:src="@drawable/indicator_selector" />

    <Button
        android:id="@+id/cbWarning"
        android:layout_width="16dp"
        android:layout_height="16dp"
        android:background="@drawable/warning_selector"
        android:clickable="false"
        android:enabled="false"
        android:focusable="false"
        android:textColor="@color/LogoButtonText"/>

    <TextView
        android:id="@+id/txtGroupName"
        android:layout_width="110dp"
        android:layout_height="wrap_content"
        android:enabled="true"
        android:paddingBottom="15dp"
        android:paddingTop="15dp"
        android:text=""
        android:textColor="@drawable/elv_title_1_selector"
        android:textSize="16sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/txtPreview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="40dp"
        android:gravity="center_vertical"
        android:padding="5dp"
        android:textSize="12sp" />
</LinearLayout>

我已经将预览的文本大小设置为12sp,如果文本长度超过n个字符,我会通过编程方式剪切文本。 我需要的是在第一个盒子上剪大一点,在第二个盒子上剪短一点


如何解决此问题,请为
文本视图添加属性
android:singleLine=“true”
android:ellipsize=“end”

<TextView
        android:id="@+id/txtPreview"
        android:layout_width="110dp"
        android:layout_height="wrap_content"
        android:enabled="true"
        android:paddingBottom="15dp"
        android:paddingTop="15dp"
        android:text=""
        android:textColor="@drawable/elv_title_1_selector"
        android:singleLine="true"
        android:ellipsize="end"
        android:textSize="16sp"
        android:textStyle="bold" />

首先在第二个
文本视图中添加
android:singleLine=“true”和
android:ellipsize=“end”

<TextView 
...
 android:singleLine="true"
android:ellipsize="end"
...
/>

并添加
dimes.xml
并为不同分辨率指定您的
textsize

您可以在xml中为textview设置singleLine=“true”和ellipize=“end”,这样将。。。在文本视图中文本的末尾,如果超出屏幕,您可以设计不同的屏幕大小。例如,对于xhdpi,您将文本设置为12sp,并在xxhdpi下添加同名的新布局,其中文本大小将为15sp。在txtPreview中添加属性android:singleLine=“true”,并将其宽度设置为wrap_content。@JawadZeb:我以为只能为不同的屏幕设计图片,不是布局。@marco:ia读过一些关于屏幕大小的帖子,我发现了一种根据屏幕大小调整文本的方法。下面是函数。公共浮点convertFromDp(int输入){final float scale=getResources().getDisplayMetrics().density;return((输入-0.5f)/scale);}//用法myTextView.setTextSize(convertFromDp(15));好的,谢谢。我正在剪切文本并添加一个。。。a由我自己完成,但这是自动添加代码完成的。完美。现在的问题是预览可能是多行的,但我会修复它。不要修复TextView宽度,它可能会导致某些设备出现问题。因此,将android:layout\u width=“110dp”替换为android:layout\u width=“wrap\u content”或android:layout\u width=“match\u parent”@Karheek:ExandableListView中的所有行必须具有相同的标题大小。有了wrap_内容,情况变得很糟糕。你是对的,这取决于你的要求。不管怎么说,你已经添加了android:singleLine=“true”,所以它只会出现在一行中。你的回答添加了更多有用的细节,谢谢。我已经接受了另一个答案,因为它是第一个答案。欢迎@marco无问题。对于您的信息,您可以随时更改关于接受答案的决定
values
values-v21
values-sw600