【问题标题】:Android TextView安卓文本视图
【发布时间】:2011-07-08 07:35:01
【问题描述】:

我有一个正在尝试运行的 android 示例。 有两种方法可以做到这一点..

// Get a drawable 
ColorDrawble redDrawable = (ColorDrawable).getResources().getDrawable(R.drawable.red_rectangle); 

//Set it as a background to a text view 
textView.setBackground(redDrawable); 

当我把它放在 Eclipse IDE 中时,我得到一个错误 ColorDrawble cannot be resolve to a type 我在主 XML 中有文本视图


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <TextView android:layout_width="fill_parent" 
            android:id="@+id/texter"
          android:layout_height="wrap_content" 
          android:text="this string"/>


</LinearLayout>

以及字符串xml文件中的资源

<resources>
    <string name="hello">Hello World, ResourceTesterActivity!</string>
    <string name="app_name">ResourceTester</string>
     <drawable name="red_rectangle" >#f00</drawable> 
    <drawable name="blue_rectangle">#0000ff</drawable> 
    <drawable name="green_rectangle" >#f0f0</drawable>
</resources>

**

【问题讨论】:

标签: android textview drawable


【解决方案1】:

您可以像这样简单地使用可绘制对象:

// Get a drawable 
Drawable redDrawable = YourActivity.this.getResources().getDrawable(R.drawable.red_rectangle); 

//Set it as a background to a text view 
textView.setBackgroundDrawable(redDrawable);//i've changed setBackground with setBackgroundDrawable.

或者你可以直接使用:

textView.setBackgroundResources(R.drawable.red_rectangle);

注意:清理并重建您的项目,然后运行它进行测试 而对于drawable,你不需要在strings.xml中声明它,只需将你的drawable添加到文件夹drawables中,它就可以工作了

【讨论】:

  • 感谢您的回复。认为我需要制作对象 textView?我得到一个错误 textView 无法解决
  • 确保您的布局包含一个 textView,然后重建您的项目:转到菜单 PROJECT ==> CLEAN ==> 选择您的项目 ==> 然后按 OK。
  • 如果我将代码更改为此.. TextView tv = (TextView)findViewById (R.id.textView1); tv.setBackgroundResource(R.drawable.red_rectangle);我在模拟器上遇到错误对不起! ResouceTester 意外停止
  • 将方法setBackgroundResource(int res)改成setBackgroundDrawable(this.getResources().getDrawable(R.drawable.red_rectangle);
  • 感谢您的回复.. 我已将其更改为:TextView tv = (TextView)findViewById (R.id.textView1); tv.setBackgroundDrawable(this.getResources().getDrawable(R.drawable.red_rectangle)‌​; 但出现语法错误,丢失;抱歉给您带来的麻烦,但我是 java/android 的新手
【解决方案2】:

应该是:

ColorDrawble redDrawable = (ColorDrawable) 
          getResources().getDrawable(R.drawable.red_rectangle);

您不需要点(可能是错字)。

然后按 Ctrl+Shift+O(组织导入)导入 ColorDrawble 类。

【讨论】:

  • 感谢您的回复。我遇到了 2 个错误。 1.ColorDrawable无法解析为类型,2.textView无法解析
  • 是的,你是对的,不需要点,textView 仍然有问题。我是否必须声明一个新对象,例如 TextView textview= new Textview(textView); ??
  • 如果我将代码更改为此.. TextView tv = (TextView)findViewById (R.id.textView1); tv.setBackgroundResource(R.drawable.red_rectangle);我在模拟器上遇到错误对不起! ResouceTester 意外停止
猜你喜欢
  • 2011-04-21
  • 1970-01-01
  • 2011-08-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多