`
abc20899
  • 浏览: 929265 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

TextView的众多使用

阅读更多
.1更改与显示文字标签——TextView标签的使用

main.xml下修改TextView

<TextView
android:id="@+id/myTextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_1"
android:layout_x="30px"
android:layout_y="50px"
>

这里设置了一个TextView显示框,设置了显示ID,显示内容和显示的布局。

要怎么显示TextView的内容呢?请看 工程名.java 如下

/*必须引入widget.TextView才能在程序声明TextView对象*/
import android.widget.TextView;

public class EX03_01 extends Activity
{
/*必须引入widget.TextView才能在程序声明TextView对象*/
private TextView mTextView01;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);

/*更新main.xml Layout此时mTextView01:textstr_1*/
setContentView(R.layout.main);

/*使用findViewById函数,利用ID找到该TextView对象* /
mTextView01 = (TextView) findViewById(R.id.myTextView01);

String str_2 = "欢饮来到Android的TextView世界";
mTextView01.setText(str_2);

}
}

我们的目标是改变显示的文字TextView要显示str_2

但是我们定义的str_1,在main.xml是固定显示的。所以我们通过了str_2实现了字符串的显示的更改。

实验一完成。实验拓展

TextView里的setText支持多态的构造方法:

pubic final void setText(chargeSequence text)

pubic final void setText(int resid)

pubic final void setText(int resid,TextView.BufferType type)

pubic final void setText(char[],int start,int len)

这里的start是显示开始的字节,len为显示的长度

3.2更改窗口画面底色——drawable颜色常数的方法

主程序如下:

public class ex3 extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}

我们这里只要修改main.xml就OK了,因为他是设置界面的。

main.xml如下

主界面部分

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/white"
>

TextView部分

这里是显示std_id字符串,显示颜色为darkgray

<TextView
android:id="@+id/widget28"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_id"
android:textColor="@drawable/darkgray"
android:layout_x="61px"
android:layout_y="69px"
>
</TextView>

这里显示显现str_pwd字符串,显示颜色为darkgray


<TextView
android:id="@+id/widget29"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_pwd"
android:textColor="@drawable/darkgray"
android:layout_x="61px"
android:layout_y="158px"
>
</TextView

EditView部分:

这里设置一个EditText框
<EditText
android:id="@+id/widget31"
android:layout_width="120dip"
android:layout_height="wrap_content"
android:textSize="18sp"
android:layout_x="114px"
android:layout_y="57px"
>
</EditText>

这里设置一个EditText框
<EditText
android:id="@+id/widget30"
android:layout_width="120dip"
android:layout_height="wrap_content"
android:textSize="18sp"
android:password="true"
android:layout_x="112px"
android:layout_y="142px"
>
</EditText>

不过这里要有white和darkgray就要先定义这两个颜色变量

在values下新建一个color.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
<drawable name="darkgray">#808080FF</drawable>
<drawable name="white">#FFFFFFFF</drawable>
</resources>

这样的就我们就实现了随意改变窗口的颜色了。yeah

实验拓展:

可以利用drawable实现定义众多的颜色参量(在resource里面),方便使用。也可以通过程序随意改变窗口的颜色。程序如下

Resources resources = getBaseContext .getResources();

Drawable HippoDrawable =resources.getDrawable(R.drawable.white);

TextView tv = (TextView) findViewById(R.id.text);

tv.SetBackground(HippoDrawable );

3.更改TextView文字的颜色——drawable颜色常数的方法

实验说明,通过上例,我们知道Drawable来定义颜色常数,但实际上是用程序控制TextView和或者其他对象(setBackgroundDrawable),

如判断对象被单击是背景颜色亮起和单失去背景颜色时,又恢复原来的颜色。

以下的范例将拓展前一个范例的实现,预先设计两个TextView对象,并在onCreat同时通过两种程序描述方法,实时更改原来Layout里的背景色以及文字颜色,最后使用Android默认颜色常数来更改文字的背景色。

主程序如下:

public class ex3 extends Activity {

private TextView mTextView01;
private TextView mTextView02;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

mTextView01 = (TextView) findViewById(R.id.myTextView01);
mTextView01.setText("我是应用程序的背景颜色");

//更改文字内容
Resources resources = getBaseContext().getResources();
Drawable HippoDrawable = resources.getDrawable(R.drawable.white);
mTextView01.setBackgroundDrawable(HippoDrawable);

//设置文字框的背景颜色

mTextView02 = (TextView) findViewById(R.id.myTextView02);
mTextView02.setTextColor(Color.MAGENTA);

//改变文字显示的颜色
}
}

程序里新建两个类成员变量:mTextView01和mTextView02,这两个变量在onCreat之初,以findViewById方法使初始化为layout里面的TextView对象。在当中使用了Resource类以及Drawable类,分别创建了resources对象以及HippoDrawable对象,并将前一个范例中所所创建的R.drawable.white以及getDrawable方法加载,最后则调用了setBackgroundDrawable来更改mTextView01的文字底纹。更改TextView的文字,则使用setText方法。

3.4置换TextView文字——CharSequence数据类型和Source ID应用

实验示范如何在程序运行时,通过CharSequence依据Resource ID取出字符串,并正确更改TextView的文字。

import android.widget.TextView;

public class ex3_4 extends Activity {

private TextView mTextView02;


/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

mTextView02 = (TextView) findViewById(R.id.myTextView02);
CharSequence str_2 = getString(R.string.str_2);

String str_3 = "我是程序里面调用的Resource";
mTextView02.setText(str_3 + str_2);
}
}

两个用法是一致的。

3.5 读取手机屏幕的大小

程序如下:

import android.app.Activity;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.widget.TextView;

public class ex3_5 extends Activity {

private TextView mTextView01;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

/*必须引用 android.util.DisplayMetrics */
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);

//得到手机分辨率

String strOpt = "手机分辨率为" + dm.widthPixels + " ⊙ " + dm.heightPixels;

//将这些文字都连接起来。

mTextView01 = (TextView) findViewById(R.id.myTextView01);
mTextView01.setText(strOpt);

//输出文字。
}
}

在2.1的环境下运行屏幕大小为320*480

3.6样式化的定性对象——Style样式的使用

在这个实验中如何教你改变字体的大小

具体程序如下:main.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"
>
<!-- 套用樣式1的TextView -->
<TextView
style="@style/DavidStyleText1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical|center_horizontal"
android:text="@string/str_text_view1"
/>
<!-- 套用樣式2的TextView -->
<TextView
style="@style/DavidStyleText2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical|center_horizontal"
android:text="@string/str_text_view2"
/>
</LinearLayout>

在values先新建一个style.xml

具体如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="DavidStyleText1">
<item name="android:textSize">18sp</item> //大小
<item name="android:textColor">#EC9237</item> //颜色
</style>

//设置字体的大小和text的颜色。
<style name="DavidStyleText2">
<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>

3.14控制不同文字字体——Typeface对象使用

除了文字颜色之外,与文字对象息息相关的文字大小及字体。

TextView对象里有很多与字形相关的方法,如使用setTextSize来改变文字大小和、setTypeface来指定使用字体,设置两个按钮,其一控制字体,其二控制大小,需要解说的是通过外部资源asserts,引用外部的字体文件(True Type Font),在通过Typeface类的creatFromAsset方法,让TextView可通过setTypeface来改变字体。

具体程序如下

/*必须引用graphics.Typeface才能用creatFromAsset().*/
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;


public class ex3_14 extends Activity {

private TextView mText;
private Button sizeButton;
private Button fontButton;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);


mText=(TextView)findViewById(R.id.mytextview);
sizeButton=(Button) findViewById(R.id.sizebutton);
fontButton=(Button) findViewById(R.id.fontbutton);
/*设置onClickListener与按钮对象连接*/
sizeButton.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
/*使用setTextSize()改变字体的大小 */
mText.setTextSize(20);
}
}
);
fontButton.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
/*必须在assets创建一个fonts子文件夹
* 并放入要使用的字体文件(.ttf)
* 并提供相对路劲creatFromAsset()来创建Typeface对象*/
mText.setTypeface
(Typeface.createFromAsset(getAssets(),"fonts/HandmadeTypewriter.ttf"));
}
}
); 关键代码


}
}

今天感觉学到不少东西,感觉快过年,我得抓紧时间学习才行,不然的话,到过年都没有时间搞这个方面了。加油呀。现在喜欢上Android了。
分享到:
评论

相关推荐

    TextView的xml属性(Android)

    这些属性只是`TextView`众多功能的一部分。开发者可以根据需求选择合适的属性来定制文本显示,增强用户体验。同时,还可以使用`textColor`、`textSize`、`gravity`等属性来调整文本的颜色、大小和对齐方式,或者使用...

    Android定制控件:带图标有颜色TextView、可编辑文本框

    在实现这些自定义控件时,需要考虑到兼容性问题,因为Android系统版本众多,不同的API级别可能会有不同的行为。可以使用条件编译语句或者Support Library来确保在低版本系统上的正常运行。同时,为了方便复用和管理...

    SDHtmlTextView,灵感来源于htmltextview,并通过多种css样式增强.zip

    SDHtmlTextView是一个基于Android平台的开源项目,灵感来源于HtmlTextView,旨在提供更强大的HTML文本渲染能力,通过支持多种CSS样式来增强原生...其简单易用和高度可定制性,使得它在众多Android开源项目中脱颖而出。

    安卓动画效果相关-实现类似从上到下像灌满水一样字体动画TextView.zip

    5. **兼容性处理**:由于Android系统版本众多,可能需要考虑API级别的兼容性问题,使用Support Library或AndroidX库来确保动画在不同版本的设备上都能正常工作。 6. **性能优化**:动画执行时可能会对性能造成影响...

    Android-JTTextView是一个基于Android的功能强大的TextView组件

    JTTextView是专为Android平台设计的一个增强型TextView组件,它扩展了标准的EditText功能,旨在简化开发者在处理文本输入和显示时的工作流程。这个组件包含了众多实用特性,使得UI交互更加丰富,用户体验更加出色。 ...

    TextViewDemo

    综上所述,`TextViewDemo`涵盖了`TextView`的众多实用技巧,从基本属性设置到高级文本格式化,再到事件处理和性能优化,都是Android开发中不可或缺的知识点。通过这个示例,开发者可以更深入地理解并掌握`TextView`...

    TextSurface.zip

    《Android UI 动画实践:TextSurface框架解析》 在Android应用开发中,用户界面(UI)的动画设计是...在实际开发中,合理运用TextSurface,可以让我们的应用在众多应用中脱颖而出,带给用户更加沉浸和愉悦的使用感受。

    Android中常见控件的介绍和使用

    ### Android中常见控件的介绍和使用:TextView详解 在Android开发中,`TextView`作为最基础也是最常用的UI组件之一,主要用于展示静态文本信息。本文将深入解析`TextView`的结构、方法及其XML属性,帮助开发者更好...

    Android面试题之优势和不足.txt

    - Android拥有庞大的应用市场——Google Play商店,以及众多第三方应用市场。这些市场提供了丰富的应用程序选择,涵盖了游戏、社交、教育等多个领域,极大地丰富了用户的数字生活体验。 #### 良好的硬件兼容性 - ...

    androidstudio入门开发安装使用经验合集

    8. 设备兼容性:Android设备众多,需要关注不同屏幕尺寸、分辨率和API级别的适配,如使用支持库和设计模式处理兼容性问题。 总之,Android Studio作为Android开发的首选IDE,其丰富的功能和友好的界面为开发者提供...

    Android 中常见控件的介绍和使用.rar_adroid_android

    以上只是Android众多控件中的一部分,实际开发中还有诸如`CheckBox`、`RadioButton`、`ToggleButton`、`SeekBar`等,它们各自都有特定的功能和应用场景。掌握这些控件的使用,将有助于构建出丰富多样的用户界面,...

    android垂直跑马灯-翻页公告.rar

    总之,通过理解`TextView`的`marquee`属性和`ViewPager`的使用,开发者可以在Android项目中实现垂直跑马灯和翻页公告的效果。在实践中,需要根据具体需求进行代码调整,以达到最佳用户体验。对于压缩包中的代码,...

    Android 解决方案 使用指南_android_

    1. 版本兼容性:Android设备众多,版本各异,开发者需关注API级别,使用兼容库(如Android Support Library或Jetpack)来确保应用在多个版本上运行良好。 2. 权限管理:Android 6.0(API级别23)引入了运行时权限,...

    Android的Activity众多控件效果

    2. TextView(文本视图):TextView用于显示文本信息,支持多种格式,如字体、颜色、对齐方式等。它还可以与EditText结合,实现简单的输入验证。 3. EditText(编辑文本):允许用户输入文本,通常用于获取用户反馈...

    android阅读器

    在这种情况下,开发者可能需要自定义一个`TextView`子类,或者使用开源库如`Android-Universal-Image-Loader`或`Android-TextView-Kt`来增强文本显示能力,支持自定义字体、行间距、对齐方式等。 4. 用户交互:为了...

    SinkingTextView

    《SinkingTextView:创新的动画效果在Android开发中的应用》 在Android开发中,吸引用户注意力和提升用户体验是至关重要的。...合理运用这一技术,无疑能使你的应用在众多应用中脱颖而出,吸引更多的用户。

    一个基于ComponentContainer实现的控件,支持将一组Component展示为一个3D球形集合,并支持全方向滚动

    3D球形集合的概念源自于数据可视化领域,它将众多的数据点或者标签分布在球体表面,通过3D旋转来展示各个组件,使得信息分布更加立体且易于理解。在这个控件中,每个Component都可以代表一个单独的数据项或标签,...

Global site tag (gtag.js) - Google Analytics