实现TextView内容分块处理
来源:互联网 发布:linux内核内存管理浅析 编辑:程序博客网 时间:2024/06/14 21:34
实现效果图:
这里实现主要是用HorizontalScrollView加TextView实现的,实现布局代码:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.a550211.testactivity.MainActivity"> <Button android:id="@+id/btn_add" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="添加" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="sdcard>" /> <HorizontalScrollView android:id="@+id/scrollView" android:layout_width="match_parent" android:layout_height="wrap_content" android:scrollbars="none"> <TextView android:id="@+id/tv_path" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </HorizontalScrollView> </LinearLayout></LinearLayout>2、实现HorizontalScrollView初始跳转到最右边
scrollView.post(new Runnable() { public void run() { scrollView.fullScroll(View.FOCUS_RIGHT); } });
3、完整实现代码
package com.example.a550211.testactivity;import android.app.Activity;import android.graphics.Color;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.text.Editable;import android.text.Spannable;import android.text.SpannableString;import android.text.SpannableStringBuilder;import android.text.Spanned;import android.text.TextPaint;import android.text.TextUtils;import android.text.TextWatcher;import android.text.method.LinkMovementMethod;import android.text.method.ScrollingMovementMethod;import android.text.style.CharacterStyle;import android.text.style.ClickableSpan;import android.text.style.ImageSpan;import android.util.Log;import android.view.Menu;import android.view.MenuInflater;import android.view.MenuItem;import android.view.View;import android.view.Window;import android.widget.Button;import android.widget.HorizontalScrollView;import android.widget.TextView;import android.widget.Toast;import java.util.ArrayList;import java.util.StringTokenizer;public class MainActivity extends Activity { private TextView tv_path; private HorizontalScrollView scrollView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); initView(); initData(); } private void initData() {// String[] spPath = mCurrentPath.split(Type.ALL_PATH);// StringTokenizer tokenizer = new StringTokenizer(spPath[1],"/");// while (tokenizer.hasMoreTokens()){// sbBuilder.append(tokenizer.nextToken() + " > ");// } StringBuilder sbBuilder = new StringBuilder(); for (int i = 0; i < 10; i++) { sbBuilder.append("username" + i + ">"); } String likeUsers = sbBuilder.substring(0, sbBuilder.lastIndexOf(">")).toString(); tv_path.setMovementMethod(LinkMovementMethod.getInstance()); tv_path.setText(addClickablePart(likeUsers), TextView.BufferType.SPANNABLE); } private SpannableStringBuilder addClickablePart(String str) { SpannableString spanStr = new SpannableString(""); SpannableStringBuilder ssb = new SpannableStringBuilder(spanStr); ssb.append(str) ; String[] likeUsers = str.split(">"); if (likeUsers.length > 0) { // 最后一个 for (int i = 0; i < likeUsers.length; i++) { final String name = likeUsers[i]; final int start = str.indexOf(name) + spanStr.length(); ssb.setSpan(new ClickableSpan() { @Override public void onClick(View widget) { Toast.makeText(getApplication(), name, Toast.LENGTH_SHORT).show(); } @Override public void updateDrawState(TextPaint ds) { super.updateDrawState(ds); ds.setColor(Color.BLACK); // 设置文本颜色 // 去掉下划线 ds.setUnderlineText(false); } @Override public CharacterStyle getUnderlying() { return super.getUnderlying(); } }, start, start + name.length(), 0); } } return ssb.append(""); } private void initView() { tv_path = (TextView)findViewById(R.id.tv_path); scrollView = (HorizontalScrollView)findViewById(R.id.scrollView); scrollView.post(new Runnable() { public void run() { scrollView.fullScroll(View.FOCUS_RIGHT); } }); }}
1 0
- 实现TextView内容分块处理
- [分块处理] Color
- opencv 图像分块处理
- matlab图片分块处理
- gdal图像分块处理
- GDAL分块处理流程
- 自定义TextView实现内容的旋转和偏移
- Android之TextView内容实现跑马灯效果
- 实现对特定内容改变字体颜色的TextView
- TextView 数字、中文 内容的中线下划线锯齿效果实现
- android TextView 文本内容收起,展开的效果实现
- android开发 textview内容过多实现上下滑动
- Android 根据搜索内容实现TextView中的文字部分加粗
- android 实现图片icon加在textview内容中
- Android实现TextView 设置图片drawableLeft后内容居中
- textview在内容过多时可上下滑动的实现
- TextView属性android:ellipsize实现跑马灯效果,TextView内容过长加省略号,点击显示全部内容
- Android 自定义TextView实现文本内容自动调整字体大小以适应TextView的大小
- 最简单spring task 定时任务实现
- 3 字节的 UTF-8 序列的字节 3 无效
- Leetcode学习(26)—— Add Binary
- 4月英语总结
- Android日志Log使用
- 实现TextView内容分块处理
- php在同一个页面设置cookie然后读cookie为什么是Undefined
- viewpager中的fragment放置了MPAndroidChart,滑动受阻
- EXISTS子查询
- 【Unity】ScriptableObject的介绍
- 继承
- 生成排列(Generating Permutations, UVa11925)
- 使用Python求解最大公约数
- MYSQL