package wq.test;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
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 AndroidTestActivity extends Activity
{
private final String stringToShow = "test,test,test,test,test,test,test,test,test,test,test,test," +
"test,test,test,test,test,test,test,test,test,test,test,test,test,test" +
",test,test,test,test,test,test,test,test,test,test,test,test,test,test" +
"testtest test test...";
private final String readMore = "Read More";
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
this.setContentView(R.layout.main);
TextView tv = (TextView) this.findViewById(R.id.textView);
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(View widget) {
if (widget instanceof TextView) {
((TextView) widget).setText(stringToShow + stringToShow);
}
}
};
setClickableSpanForTextView(tv, clickableSpan, stringToShow + readMore, stringToShow.length(), stringToShow.length() + readMore.length());
}
/**
*
* @param tv TextView
* @param clickableSpan Click event
* @param text Text to show
* @param start Start point in text for handle click event
* @param end End point in text for handle click event
*/
private void setClickableSpanForTextView(TextView tv, ClickableSpan clickableSpan, String text, int start, int end) {
SpannableString sp = new SpannableString(text);
sp.setSpan(clickableSpan, start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(sp);
tv.setLinkTextColor(Color.RED);
tv.setMovementMethod(LinkMovementMethod.getInstance());
tv.setFocusable(false);
tv.setClickable(false);
tv.setLongClickable(false);
}
}
分享到:
相关推荐
在Android开发中,TextView是用于...以上就是关于在Android中为TextView指定片段添加点击事件的详细过程。在实际开发中,这个技巧可以广泛应用于创建可点击的链接、按钮或其他交互元素,为用户提供更丰富的交互体验。
在Android开发中,`TextView` 是一个非常基础且重要的组件,通常用于展示纯文本内容。然而,当开发者需要在文本中插入图片或者实现更复杂的格式时,`TextView` 的功能就显得有些不足。针对这种情况,Android 提供了...
在实际开发中,开发者可以根据需求选择合适的Span类型,通过setSpan方法将它们应用到特定的文本片段上,从而实现TextView的复合文本展示。这种方式极大地增强了TextView的灵活性,让UI设计更加丰富多样。同时,由于...
跑马灯效果在Android中通常是通过自定义View或者对现有控件进行扩展来实现的,而在这个Demo中,我们将重点讨论如何在TextView中实现垂直滚动的效果。 首先,TextView是Android中最基础的文本显示控件,它通常用于...
这个压缩包"安卓Android源码——textView根据长度自动换行.zip"很可能包含了一个示例项目或代码片段,演示了如何在TextView中实现根据文本长度自动换行的功能。 在Android的TextView中,自动换行是默认开启的。当你...
Spanned对象是Android中的一个接口,它支持富文本格式,可以包含不同样式和属性的文本片段。通过将HTML标签解析为Spanned,我们可以保留原始HTML的格式,如字体颜色、大小、粗体、斜体等,并在TextView中正确地呈现...
// 添加点击事件监听器 buttonOk.setOnClickListener(v -> { Toast.makeText(this, "确定被点击", Toast.LENGTH_SHORT).show(); // 在这里处理确定操作的逻辑 builder.getDialog().dismiss(); // 关闭对话框 }...
这个压缩包文件"安卓textView相关-TextView中文本的处理.rar"可能包含了关于如何在TextView中处理中文文本的一些示例或代码片段,虽然未提供具体的代码细节,但我们可以根据常见的需求来探讨TextView处理中文文本的...
在标准的Android TextView中,通常只能显示纯文本,但通过自定义控件,我们可以扩展其功能,使其能够显示图标和文本。这可以通过继承TextView并重写onDraw()方法来实现。在onDraw()方法中,我们需要绘制图标和文本。...
5. **渲染视图**:最后,在布局中添加这个自定义的TextView,并传入ColorPhrase对象,让其根据数据自动渲染双色文本。 此外,这个demo可能还包含了如何在Activity或Fragment中实例化和使用这个自定义的TextView,...
在Android开发中,我们经常需要创建一些自定义的视图来满足界面设计的独特需求。`CircleTextView`就是这样一个特殊的视图,它将普通的TextView包裹在一个圆形的布局中,使得文字围绕圆形边缘显示。这种效果常用于...
下面将详细解释如何在Android中为TextView添加超链接,并给出代码清单。 首先,为了实现超链接,我们需要创建一个自定义的ClickableSpan类,这个类继承自ClickableSpan,重写其onClick方法,以处理点击事件。以下是...
在Android应用开发中,文本的输入与显示是十分常见的需求,尤其在教育、科学计算或者技术分享类的应用中,有时我们需要展示复杂的数学公式或者代码片段。`Android-FlexibleRichTextView`是一个专门为此目的设计的库...
6. **自定义TextView**:如果你需要更复杂的功能,如图片点击事件,或者更精细的控制,可以考虑自定义一个TextView,扩展它的功能以支持加载网络图片。 总之,要在TextView中加载网络图片,我们需要处理HTML解析、...
总结来说,这个压缩包文件提供了一种在Android中实现跑马灯效果和拖动文字的方法,开发者可以通过学习这些代码片段,了解如何自定义TextView以实现更丰富的交互功能。在实际应用中,开发者可能需要根据具体需求对...
例如,我们可以创建一个 `URLSpan` 来使文本片段看起来像超链接,并处理点击事件。`Span` 是通过 `Spanned` 接口实现的,它包含了多个 `Span` 对象的集合,而 `Spannable` 接口则提供了对这些 `Span` 进行添加、删除...
在这个自定义TextView中,我们可以添加一个内部的ScrollView,然后监听手势滑动事件。这可以通过实现`OnTouchListener`接口并覆写`onTouchEvent()`方法来实现。当用户滑动时,我们可以改变TextView的可见区域,使...
5. **底部菜单栏事件处理**:为ImageView和TextView添加点击监听器,当用户点击某个选项时,更新ViewPager的当前页面,并相应地改变选中状态的视觉反馈。可以使用`OnPageChangeListener`监听ViewPager的页面切换,...
5. **自定义属性**:为了方便在XML布局中使用自定义的`TextView`,可以定义自定义属性,如颜色数组,这样用户就可以在XML中直接指定不同颜色的文本片段。 6. **测量与布局**:当文本颜色变化时,可能会影响`...