我在这里有一个xml的textView.
<TextView
android:id="@+id/bookTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawableLeft="@drawable/checkmark"
android:gravity="center_vertical"
android:textStyle="bold"
android:textSize="24dip"
android:maxLines="1"
android:ellipsize="end"/>
Run Code Online (Sandbox Code Playgroud)
如您所见,我将DrawableLeft设置为xml.
我想在代码中更改drawable.
无论如何要去做这件事吗?或者在文本视图的代码中设置drawableLeft?
我正在尝试使用像这样的样式的TextView构造函数:
TextView myText = new TextView(MyActivity.this, null, R.style.my_style );
但是,当我这样做时,文本视图似乎不采用样式(我通过在静态对象上设置它来验证样式).
我也尝试过使用myText.setTextAppearance(MyActivity.this, R.style.my_style)但它也不起作用
当我定义一个TextViewin时xml,如何添加一个新行?\n好像不行.
<TextView
android:id="@+id/txtTitlevalue"
android:text="Line1: \n-Line2\n-Line3"
android:layout_width="54dip"
android:layout_height="fill_parent"
android:textSize="11px" />
Run Code Online (Sandbox Code Playgroud) 如何以#bdbdbd编程方式将文本视图的文本颜色设置为?
我有一种情况,那里有两个领域.field1和field2.改变后我想做的就是空的field2,field1反之亦然.所以最后只有一个字段有内容.
field1 = (EditText)findViewById(R.id.field1);
field2 = (EditText)findViewById(R.id.field2);
field1.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {}
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
public void onTextChanged(CharSequence s, int start,
int before, int count) {
field2.setText("");
}
});
field2.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {}
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
public void onTextChanged(CharSequence s, int start,
int before, int count) { …Run Code Online (Sandbox Code Playgroud) 很多时候,我们需要将TextView的字体自动调整到给定的边界.
可悲的是,即使有很多线程和帖子(和建议的解决方案)谈论这个问题(例如这里,这里和这里的例子),它们都没有真正运作良好.
这就是为什么,我决定测试每一个,直到找到真正的交易.
我认为来自这样一个textView的要求应该是:
应允许使用任何字体,字体,样式和字符集.
应该处理宽度和高度
没有截断,除非文本由于限制而无法适应,我们已经给它(例如:文本太长,可用大小太小).但是,如果我们愿意,我们可以请求水平/垂直滚动条,仅适用于那些情况.
应该允许多线或单线.如果是多行,请允许最大和最小行.
计算速度不应该慢.使用循环找到最佳尺寸?至少要优化它,不要每次增加1个采样.
在多行的情况下,应该允许更喜欢调整大小或使用更多行,和/或允许使用"\n"字符自己选择行.
我已经尝试了很多样本(包括链接的那些,我已经写过了),而且我也尝试修改它们来处理这些情况,我已经谈过了,但没有一个真正起作用.
我做了一个示例项目,让我可以直观地看到TextView是否正确自动匹配.
目前,我的示例项目只是随机化文本(英文字母加上数字)和textView的大小,并让它保持单行,但即使这样也不适用于我尝试的任何样本.
这是代码(也可在此处获得):
res/layout/activity_main.xml<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" tools:context=".MainActivity">
<Button android:id="@+id/button1" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" android:text="Button" />
<FrameLayout android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_above="@+id/button1"
android:layout_alignParentLeft="true" android:background="#ffff0000"
android:layout_alignParentRight="true" android:id="@+id/container"
android:layout_alignParentTop="true" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
src/.../MainActivity.javapublic class MainActivity extends Activity
{
private final Random _random =new Random();
private static final String ALLOWED_CHARACTERS ="qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890";
@Override
protected void onCreate(final Bundle savedInstanceState)
{
super.onCreate(savedInstanceState); …Run Code Online (Sandbox Code Playgroud) 我希望能够将xml属性或样式分配给一个TextView将在所有大写字母中生成任何文本的属性或样式.
属性android:inputType="textCapCharacters"并且android:capitalize="characters"什么也不做,看起来像是用户输入的文本,而不是TextView.
我想这样做,所以我可以将风格与内容分开.我知道我可以在程序上做到这一点,但我想再次保持内容和代码的风格.
我不知道如何使TextView上的特定文本变为BOLD.
就像这样
txtResult.setText(id+" "+name);
Run Code Online (Sandbox Code Playgroud)
我希望输出如下:
1111尼尔
id并且name是我从数据库中检索了值的变量,我想使其id变为粗体,但只有id这样才name不会受到影响,我不知道如何做到这一点.
有没有办法以编程方式设置textStyle属性TextView?似乎没有一种setTextStyle()方法.
要清楚,我不是在谈论View/Widget样式!我在谈论以下内容:
<TextView
android:id="@+id/my_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello World"
android:textStyle="bold" />
Run Code Online (Sandbox Code Playgroud) 我正在尝试动态创建TableRow对象并将其添加到TableLayout.该TableRow对象有2个项目,一个TextView和CheckBox.该TextView项目需要有自己的布局权重设置为1,以推动CheckBox项目的最右边.
我找不到有关如何以编程方式设置项目的布局权重的文档TextView.
android ×10
textview ×10
java ×2
coding-style ×1
font-size ×1
layout ×1
layoutparams ×1
newline ×1
onchange ×1