注意:根据原始问题编辑,我在展示次数bounds
下的值不正确。
我试图以编程方式计算出文本的宽度,以创建一个包含我的全文的文本视图。我有以下代码,setWidth()
和setLayoutParams
似乎都不起作用。
TextView textView = new TextView(getActivity());
String text = "My text";
textView.setText(text);
Paint paint = new Paint();
Rect bounds = new Rect();
paint.setTypeface(textView.getTypeface());
paint.setTextSize(textView.getTextSize());
paint.getTextBounds(text, 0, text.length(), bounds);
textView.setWidth(bounds.width());
textView.setHeight(bounds.height());
尝试使用LayoutParams
,但仍然没有运气。
ViewGroup.LayoutParams params =
newViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, 75);
textView.setLayoutParams(params);
答案 0 :(得分:0)
通常,当一个函数使用像素时会发生这种情况,而另一个函数使用dpi。
但为什么在地球上你需要手动测量文字?通常人们会在xml中指定wrap_content
。
示例:
<Button
android:text="Press me!"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="onButton1"/>
<!--
android:layout_width="wrap_content"
-->
PS阅读有关视图布局:http://developer.android.com/reference/android/view/View.html#Layout 并尝试使用getMeasuredWidth()和getMeasuredHeight();如果您无法确定布局是否已经发生,请使用视图树观察器 http://developer.android.com/reference/android/view/View.html#getViewTreeObserver()及其回调。
答案 1 :(得分:0)
如描述Here,我们无法获取OnCreateView()中视图的边界,因为视图尚未初始化,您可以尝试使用OnWindowFocusChanged方法。