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