android 中 TextView的用法[通俗易懂]

android 中 TextView的用法[通俗易懂]本文讲解TextView4种常见的用法:一.如何显示文本(URL,不同大小、字体、颜色的文本)    activity_main.xml

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

本文讲解TextView4种常见的用法:

一. 如何显示文本(URL,不同大小、字体、颜色的文本)

 android 中 TextView的用法[通俗易懂]   

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"	
	android:layout_width="match_parent"
	android:layout_height="match_parent"
	android:orientation="vertical"
	 >
	<TextView
		android:id="@+id/textview1"
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:padding="20sp"		
		/>	
		
	
	<TextView
		android:id="@+id/textview2"
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:padding="20sp"
		android:autoLink="all"
		android:textSize="20sp"		
		/>
	
	
</LinearLayout>

Jetbrains全家桶1年46,售后保障稳定

MainActivity.java

package com.example.android_textview;

import android.os.Bundle;
import android.app.Activity;
import android.text.Html;
import android.text.method.LinkMovementMethod;
import android.widget.TextView;

public class MainActivity extends Activity {

    private TextView textView1,textView2;
	@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView1 = (TextView)findViewById(R.id.textview1);  
        textView2 = (TextView)findViewById(R.id.textview2);
        
        
        
        //textview1
        String html = "<font color='red'>I love android</font><br>";
        html+= "<font color='#0000FF'><big><i>I love android</i></big></font><br><p>";
        html+="<big><a href='http://www.baidu.com'>百度</a></big>";
        
        CharSequence charSequence = Html.fromHtml(html);
        textView1.setText(charSequence);
        textView1.setMovementMethod(LinkMovementMethod.getInstance());//点击时产生超链接。        
    
              
        //textview2
        String text = "\n我的URL :http://www.sina.com\n";
        text += "我的邮箱:123@163.com\n";
        text+="我的电话: 13956789918\n";
        textView2.setText(text);
        textView2.setMovementMethod(LinkMovementMethod.getInstance());
      
       
        
    }

	
}

二.在TextView 中显示表情图像和文本

android 中 TextView的用法[通俗易懂]

图片目录:

android 中 TextView的用法[通俗易懂]

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"	
	android:layout_width="match_parent"
	android:layout_height="match_parent"
	android:orientation="vertical"
	 >	
	<TextView
		android:id="@+id/textview"
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:padding="20sp"		
		/>
</LinearLayout>

MainActivity.java

package com.android.mytextview;

import java.lang.reflect.Field;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.text.Html;
import android.text.Html.ImageGetter;
import android.text.method.LinkMovementMethod;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {

	private TextView textView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        textView = (TextView)findViewById(R.id.textview);
        
        //textview4
        textView.setTextColor(Color.BLACK);
        textView.setBackgroundColor(Color.WHITE);
        textView.setTextSize(20);
        String html2 = "图像1<img src='image1' />图像2<img src='image2' />图像3<img src='image3' /><p>";
        html2+="图像4<a href='http://www.baidu.com'><img src='image4' /></a>图像5<img src='image5' />";
        
        CharSequence charSequence2= Html.fromHtml(html2,new ImageGetter() {
			
			public Drawable getDrawable(String source) {
				
				//获得系统资源的信息,比如图片信息
				Drawable drawable = getResources().getDrawable(getResourceId(source));
				// 第三个图片 按50%压缩
				if (source.equals("image3")) {
					drawable.setBounds(0, 0, drawable.getIntrinsicWidth()/2, drawable.getIntrinsicHeight()/2);
				} else {
					drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
				}
				
				
				return drawable;
			}
		}, null);
        
        
        textView.setText(charSequence2);
        textView.setMovementMethod(LinkMovementMethod.getInstance());     
        
        
        
        
    }

    public int getResourceId(String name){
		try {
			//根据资源ID的变量名获取Field对象 ,使用java反射寄宿制来实现的。
			Field field = R.drawable.class.getField(name);
			// 获取并返回资源的 id的字段(静态变量)的值,使用反射机制。
			return Integer.parseInt((field.get(null).toString()));
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		
		return 0;
	}
    

}

注意:第三章图片 按照50%等比例压缩,第四章图片 超链接。

三.单击链接弹出Activity

android 中 TextView的用法[通俗易懂]

点击“显示Activity1”

android 中 TextView的用法[通俗易懂]

点击”显示Activity2“

android 中 TextView的用法[通俗易懂]

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"	
	android:layout_width="match_parent"
	android:layout_height="match_parent"
	android:orientation="vertical"
	>
	<TextView
		android:id="@+id/textview1"
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:textSize="20sp" />
	<TextView
		android:id="@+id/textview2"
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:textSize="20sp" 
		android:layout_marginTop="20dp"  />
</LinearLayout>

MainActivity.java

package com.android.mytextview;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends Activity {

	private TextView textView1,textView2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView1 = (TextView)findViewById(R.id.textview1);
        textView2 = (TextView)findViewById(R.id.textview2);
        
        String text1 = "显示Activity1"; 
        String text2 = "显示Activity2";
        SpannableString s1 = new SpannableString(text1);
        SpannableString s2 = new SpannableString(text2);
        s1.setSpan(new ClickableSpan() {
			
			@Override
			public void onClick(View widget) {
				// TODO Auto-generated method stub
				Intent intent = new Intent(MainActivity.this,Activity1.class);
				startActivity(intent);				
			}
		}, 0, text1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        
        s2.setSpan(new ClickableSpan() {
			
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				Intent intent = new Intent(MainActivity.this,Activity2.class);
				startActivity(intent);	
			}
		}, 0, text2.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        
        textView1.setText(s1);
        textView2.setText(s2);
        
        textView1.setMovementMethod(LinkMovementMethod.getInstance());
        textView2.setMovementMethod(LinkMovementMethod.getInstance());
        
    }
    
    


    
}

Activity1.java

package com.android.mytextview;

import android.app.Activity;
import android.os.Bundle;

public class Activity1 extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		
		setTitle("Activity1");
	}
}

Activity2.java

package com.android.mytextview;

import android.app.Activity;
import android.os.Bundle;

public class Activity2 extends Activity {
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		
		super.onCreate(savedInstanceState);
		
		setTitle("Activity2");
	}
}

四.用TextView实现 跑马灯效果

android 中 TextView的用法[通俗易懂]

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"	
	android:layout_width="match_parent"
	android:layout_height="match_parent"
	android:orientation="vertical"
	 >
	<TextView
		android:id="@+id/textview1"
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:singleLine="true"
		android:ellipsize="marquee"
		android:marqueeRepeatLimit="marquee_forever"
		android:focusable="true"
		android:focusableInTouchMode="true"
		/>			
	
</LinearLayout>

MainActivity.java

package com.example.android_textview;

import android.os.Bundle;
import android.app.Activity;
import android.text.Html;
import android.text.method.LinkMovementMethod;
import android.widget.TextView;

public class MainActivity extends Activity {

    private TextView textView1;
	@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView1 = (TextView)findViewById(R.id.textview1);          
        
        //textview1
        String html = "4月17日晚,<a href='http://www.weibo.com'>新浪微博</a>终于成功登陆纳斯达克交易所,发行1680万股,最终发行定价17美元,位于此前拟定发行价格区间的下限。按此价格计算,新浪微博将募集资金2.856亿美元,低于预期。";        
        
        CharSequence charSequence = Html.fromHtml(html);        
        textView1.setText(charSequence);
        textView1.setMovementMethod(LinkMovementMethod.getInstance());//点击时产生超链接。                    
       
      
       
        
    }

	
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/214271.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 消除“Permission is only granted to system apps”错误[通俗易懂]

    消除“Permission is only granted to system apps”错误

    2022年1月29日
    49
  • 联想计算机的功能键,联想fn键怎么用 联想fn组合按键功能介绍【图文】「建议收藏」

    Fn键是每个笔记本上都拥有的按键,熟悉电脑的朋友都知道,笔记本为了考虑到超薄便携的特性,因此显示器上并没有像台式机那样的控制按钮,因此使用按钮调节笔记本显示器的亮度等参数就没办法实现。为此,笔记本将这些按钮集成到了键盘上,我们根据不同的情况就可以使用这些按钮调节电脑的某些参数。而Fn按键就是协助这些按钮实现操作的重要按键。那么在联想fn键和其他按键结合有什么作用呢?Fn+F1:如果我们在不按下fn…

    2022年4月14日
    252
  • pstack 安装linux_pstack命令[通俗易懂]

    pstack 安装linux_pstack命令[通俗易懂]pstack命令可显示每个进程的栈跟踪。pstack命令必须由相应进程的属主或root运行。可以使用pstack来确定进程挂起的位置。此命令允许使用的唯一选项是要检查的进程的PID。命令软件包下载地址:https://packages.debian.org/sid/pstack实例pstree以树结构显示进程pstree-pwork|grepadsshd(22669)—b…

    2022年9月14日
    0
  • 在 docker 之间导出导入镜像「建议收藏」

    在 docker 之间导出导入镜像「建议收藏」很喜欢玩docker,但最新遇到一个问题,公司给的新机器的dns有问题,导致pull不下来镜像。没办法了,没有镜像什么神马都干不了,又不能花很多时间去搭建私有的镜像库,只有另寻办法了。废话少说,经过探究,发现docker提供把镜像导出export(保存save)为文件的机制,这样就可以把镜像copy到任意地方了。1.导…

    2022年9月5日
    2
  • pycharm使用anaconda的虚拟环境_pycharm解释器为空

    pycharm使用anaconda的虚拟环境_pycharm解释器为空项目场景:在pycharm中新建项目,如果需要新建python环境时的全部操作问题描述:显示所有的python解释器:condainfo-eanaconda已经安装好了,创建新的python环境:condacreate–namepython37python=3.7#创建一个名字为python37,版本是python3.7的新环境,conda会自动安装3.7的最新版本;它会把新安装的python环境放在anaconda3的envs目录下:…

    2022年8月26日
    6
  • java map()_java之map的基本介绍

    java map()_java之map的基本介绍map简介在讲解Map排序之前,我们先来稍微了解下map。map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。其中这四者的区别如下(简单介绍):HashMap我们最常用的Map,它根据key的HashCode值来存储数据,根据key可以直接获取它的Value,同时它具有很快的访问速度。HashMap最多只允许一条记录的…

    2022年7月7日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号