textView01 = (TextView)findViewById(R.id.textView01);
textView02 = (TextView)findViewById(R.id.textView02);
//设置背景色
textView01.setText("设置了背景色黑色");
//从资源文件中加载颜色
textView01.setBackgroundDrawable(
getResources().getDrawable(R.drawable.green));
//设置文本颜色(如透明色:Color.TRANSPARENT)
textView02.setTextColor(Color.MAGENTA);
textView02.setText("设置文本颜色");
在winform或webform中,均有Control类,虽然不在同一个程序集中,但都代表“控件”的意思。在Monodroid中,表示控件的类是Android.Views.View。开发过winform或webform的朋友都知道,要在界面上显示文字,只要使用Label控件即可。在Android中,则要使用TextView。
要设置一个TextView的文本有两种方法,一是使用资源文件来定义一个字符串常数,然后在布局文件中进行引用。二是直接在后台程序中使用C#代码进行赋值。
我们先来试试第一种方法。在Resources\Values\Strings.xml文件中增加一个项,如下所示:
view plaincopy to clipboardprint?
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="Hello">Hello World, Click Me!</string>
<string name="ApplicationName">MonoDroidTest</string>
<string name="myText">这是通过Strings.xml设置的文本</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="Hello">Hello World, Click Me!</string>
<string name="ApplicationName">MonoDroidTest</string>
<string name="myText">这是通过Strings.xml设置的文本</string>
</resources>
然后在布局文件Main.axml中,增加一个TextView,文本引用这个新增加的字符串常量,如下所示:
view plaincopy to clipboardprint?
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:text="@string/myText"
android:layout_x="30px"
android:layout_y="0px"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/myTextView"/>
</AbsoluteLayout>
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:text="@string/myText"
android:layout_x="30px"
android:layout_y="0px"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/myTextView"/>
</AbsoluteLayout>
Activity1.cs中只要把Main.axml设置到ContentView即可:
view plaincopy to clipboardprint?
using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using MonoDroidTest.Tabs;
using Android.Util;
using Java.IO;
namespace MonoDroidTest
{
[Activity(Label = "MonoDroidTest", MainLauncher = true)]
public class Activity1 : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
}
}
}
using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using MonoDroidTest.Tabs;
using Android.Util;
using Java.IO;
namespace MonoDroidTest
{
[Activity(Label = "MonoDroidTest", MainLauncher = true)]
public class Activity1 : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
}
}
}
运行之后,就可以看到程序中出现了一行字符串,与我们在Strings.xml中设置的一样:
使用代码来设置TextView的文本就更简单了,首先在Activity的OnCreate方法里使用FindViewById方法来通过TextView的id从布局文件中找到这个TextView,然后对其Text进行赋值即可:
view plaincopy to clipboardprint?
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using MonoDroidTest.Tabs;
using Android.Util;
using Java.IO;
namespace MonoDroidTest
{
[Activity(Label = "MonoDroidTest", MainLauncher = true)]
public class Activity1 : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
TextView tv = FindViewById<TextView>(Resource.Id.myTextView);
tv.Text = "这是通过程序设置的文本";
}
}
}
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using MonoDroidTest.Tabs;
using Android.Util;
using Java.IO;
namespace MonoDroidTest
{
[Activity(Label = "MonoDroidTest", MainLauncher = true)]
public class Activity1 : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
TextView tv = FindViewById<TextView>(Resource.Id.myTextView);
tv.Text = "这是通过程序设置的文本";
}
}
}
这里提示一下,TextView不支持HTML标签的输出,所以即便写成这样:tv.Text = "<a href=\"http://blog.csdn.net/ojlovecd\" >区健的博客 </a>"; 实际输出时也不会变成超链接,但若在TextView里加上了android:autoLink="all",或者在程序中使用tv.AutoLinkMask=1,那么文本中若有网址(http://),是可以被转换成超链接的:
下面我们试试更改TextView的字体颜色和背景色。在第三篇文章里我们在最后就已经试过把程序的背景色给改成了白色,是通过在Values文件下增加了一个color.xml来设置颜色常量来达到的。但实际设计中最常用的方法是使用程序控制TextView或其它对象的背景颜色。接下来我们在Layout中预先设计好两个TextView对象,并在Activity的OnCreate方法中通过两种方式更改TextView的文字颜色及背景色。
view plaincopy to clipboardprint?
using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using MonoDroidTest.Tabs;
using Android.Util;
using Java.IO;
namespace MonoDroidTest
{
[Activity(Label = "MonoDroidTest", MainLauncher = true)]
public class Activity1 : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
SetContentView(Resource.Layout.Main);
TextView tv1 = FindViewById<TextView>(Resource.Id.myTextView);
tv1.Text = "这是用Drawable设置背景色的文本";
tv1.SetBackgroundDrawable(this.Resources.GetDrawable(Resource.Color.white));
TextView tv2 = FindViewById<TextView>(Resource.Id.myTextView2);
tv2.Text = "这是用SetTextColor设置文本颜色的文本";
tv2.SetTextColor(Android.Graphics.Color.Green);
}
}
}
using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using MonoDroidTest.Tabs;
using Android.Util;
using Java.IO;
namespace MonoDroidTest
{
[Activity(Label = "MonoDroidTest", MainLauncher = true)]
public class Activity1 : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
SetContentView(Resource.Layout.Main);
TextView tv1 = FindViewById<TextView>(Resource.Id.myTextView);
tv1.Text = "这是用Drawable设置背景色的文本";
tv1.SetBackgroundDrawable(this.Resources.GetDrawable(Resource.Color.white));
TextView tv2 = FindViewById<TextView>(Resource.Id.myTextView2);
tv2.Text = "这是用SetTextColor设置文本颜色的文本";
tv2.SetTextColor(Android.Graphics.Color.Green);
}
}
}
那么定义在Strings.xml中的字符串常量我们要是在程序里要使用的话该怎么获取呢?可以使用Activity中的GetString方法:
tv1.Text = this.GetString(Resource.String.myText)。注意一点的是,如果string.xml中的字符串常数有单引号',双引号"和斜杠\等特殊字符时,记得使用转义字符(\):<string name="myText">这是?通过\'Strings.xml\"设置的文\\本</string>
Android可以设置为随着窗口大小调整缩放比例,但即便如此,开发人员还是必须知道手机屏幕的边界,以免造成布局变形问题。获取手机分辨率的方法很简单,关键是DisplayMetrics类的应用。
view plaincopy to clipboardprint?
TextView tv2 = FindViewById<TextView>(Resource.Id.myTextView2);
DisplayMetrics dm = new DisplayMetrics();
this.WindowManager.DefaultDisplay.GetMetrics(dm);
tv2.Text = string.Format("手机分辨率为:{0}×{1}", dm.WidthPixels, dm.HeightPixels);
TextView tv2 = FindViewById<TextView>(Resource.Id.myTextView2);
DisplayMetrics dm = new DisplayMetrics();
this.WindowManager.DefaultDisplay.GetMetrics(dm);
tv2.Text = string.Format("手机分辨率为:{0}×{1}", dm.WidthPixels, dm.HeightPixels);
老是要一个个指定文字的大小、颜色是不是太麻烦了点?有没有类似CSS那样的方法来指定这些样式呢?事实上是有的,在MonoDroid中,也可以通过样式(Style)的方式,来更改Layout中任何对象的外观。
我们首先在Values文件下增加一个style.xml作为我们的样式文件,然后往里面增加两种样式作为例子:
view plaincopy to clipboardprint?
<?xml version="1.0" encoding="utf-8"?>
<resources>
<mce:style name="TextStyle1"><!--
<item name="android:textSize">18sp</item>
<item name="android:textColor">#ec9237</item>
--></mce:style><style name="TextStyle1" mce_bogus="1"> <item name="android:textSize">18sp</item>
<item name="android:textColor">#ec9237</item>
</style>
<mce:style name="TextStyle2"><!--
<item name="android:textSize">14sp</item>
<item name="android:textColor">#ff7f7c</item>
<item name="android:fromAlpha">0.0</item>
<item name="android:toAlpha">0.0</item>
--></mce:style><style name="TextStyle2" mce_bogus="1"> <item name="android:textSize">14sp</item>
<item name="android:textColor">#ff7f7c</item>
<item name="android:fromAlpha">0.0</item>
<item name="android:toAlpha">0.0</item>
</style>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<mce:style name="TextStyle1"><!--
<item name="android:textSize">18sp</item>
<item name="android:textColor">#ec9237</item>
--></mce:style><style name="TextStyle1" mce_bogus="1"> <item name="android:textSize">18sp</item>
<item name="android:textColor">#ec9237</item>
</style>
<mce:style name="TextStyle2"><!--
<item name="android:textSize">14sp</item>
<item name="android:textColor">#ff7f7c</item>
<item name="android:fromAlpha">0.0</item>
<item name="android:toAlpha">0.0</item>
--></mce:style><style name="TextStyle2" mce_bogus="1"> <item name="android:textSize">14sp</item>
<item name="android:textColor">#ff7f7c</item>
<item name="android:fromAlpha">0.0</item>
<item name="android:toAlpha">0.0</item>
</style>
</resources>
然后在布局文件中指定Style属性,使其应用style.xml里事先定义好的样式。如果vs在style下面有波浪提示你未声明“style”特性,不要管它,直接生成。
view plaincopy to clipboardprint?
<TextView android:text="@string/myText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/myTextView"
style="@style/TextStyle1" mce_style="@style/TextStyle1" />
<TextView android:id="@+id/myTextView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_y="30px"
style="@style/TextStyle2" mce_style="@style/TextStyle2"/>
分享到:
相关推荐
NULL 博文链接:https://lxmgfd.iteye.com/blog/1143676
TextView文字样式设置,包含部分文字事件、设置文字颜色、背景颜色,拨打电话号码等
接下来我们来看一下,怎么在Java代码部分怎么设置TextView的背景颜色,其实很简单的就一句话。 tvTemp.setBackgroundColor(Color.parseColor(#00FF00)); 我们在xml布局文件中就可以直接调用drawable文件代码如下:
本例子演示了给TextView中的字体设置:百度超链接,电话, 邮件, 短信, 彩信, 地图, 背景色, 前景色, 正常、 粗体、 斜体、 粗斜体、下划线、 删除线、 上标、 下标 、 点击跳转、 设置字体、 字体大小等 ...
本文实例讲述了Android ...1、BackgroundColorSpan 背景色 2、ClickableSpan 文本可点击,有点击事件 3、ForegroundColorSpan 文本颜色(前景色) 4、MaskFilterSpan 修饰效果,如模糊(BlurMaskFilter)、浮雕(Emboss
通过一个简单的Android TextView在策略模式中的应用,起到抛砖引玉的作用,让大家能够对策略模式有一个基本的认识
1、BackgroundColorSpan 背景色 2、ClickableSpan 文本可点击,有点击事件 3、ForegroundColorSpan 文本颜色(前景色) 4、MaskFilterSpan 修饰效果,如模糊(BlurMaskFilter)、浮雕(EmbossMaskFilter) 5、...
那么如何对于TextView中各个部分的文本来设置字体,大小,颜色,样式,以及超级链接等属性呢?下面我们通过SpannableString的具体实例操作来演示一下。 //创建一个 SpannableString对象 SpannableString msp = new ...
Android定制控件: 1、带图标的TextView 2、带图标的可编辑文本框 3、全屏背景图片 4、设置TextView和可编辑文本框内文字的颜色值
特征 超链接点击事件(带有按下的文本和背景颜色) 单击事件(带有按下的文本和背景颜色) 文字背景色 文字前景色 字体大小 文本样式(粗体、斜体) 文字字体 图像当然,您可以使用 api addTypeSpan添加自定义字体...
TextView就是一个用来显示文本标签的控件。 代码如下:/*TextView的设置*//*... /* 设置文本的颜色 */ textview.setTextColor(Color.RED); /* 设置字体大小 */ textview.setTextSize(20); /* 设置文字背景 */ tex
实现不同颜色、字体、带链接的文本;实现圆角边框、渐变背景的TextView.使用Android Studio编译
设置背景正常颜色和按下颜色。样本有关此库的常见用法,请参阅 。如何使用下载文件并将其复制到您的项目中。 将 LinkTextView 添加到您的布局。 < ...
ClickableSpan 默认没有高亮行为,也不能添加背景颜色; ClickableSpan 必须配合 MovementMethod 使用 一旦使用 MovementMethod,TextView 必定消耗事件 当点击ClickableSpan时,TextView的点击也会随后触发 当...
EditText和AutoCompleteTextView设置文字选中颜色 大多数Android Rom上,文本选择的背景色都是很好看的鲜绿色, 但是在某些垃圾的三星手机上,居然是蓝色,令人恶心反感,其实完全可以通过程序来修改,文本的默认选中背景...
这个项目可以快速的帮你构建Textview中的内容,如字体颜色,字体背景,样式,删除线,下滑线,文本超链接,文本跳转电话,文本跳转短信,文字中嵌入图片等功能
如果指定一个颜色的话会把text的背景设为该颜色,并且同时和background使用时覆盖后者。 android:drawableLeft在text的左边输出一个drawable,如图片。 android:drawablePadding设置text与drawable(图片)的...
功能描述: 可以自定义气泡背景颜色、显示文本(字符串)、边框颜色、边框宽度、在界面中显示的位置 实例图: 使用说明 使用方式一:布局中使用 第一步:布局用BadgeView将目标view进行包裹,并定义相关属性 第二...
封装类网易新闻评论新闻输入框,监听键盘改变显示高度,自带黑灰...使用几个设置颜色字体等工具,使用需要连带一些文件和pch,即CommonTools文件中所有文件 有时间会逐步把这些文件从工程中剥离出来,减小封装体积