簡體   English   中英

如何在android中的多行文本視圖之間放置一個imagebutton/imageview

[英]How to put a imagebutton/imageview between a multiline textview in android

我在 Android 中的多行 textview 之間放置 imagebutton/imageview 時遇到問題。

例如。:

在此處輸入圖像描述

文本是動態的。 我在我的應用程序(近 50 個)中使用不同的文本有很多這樣的視圖,我想通過代碼的可重用性來實現這一點。 所以請給我一些動態的解決方案。 單擊圖像按鈕/圖像視圖時,它應該重定向到調用屏幕。

我對在 WebViews 的幫助下執行此操作的想法持開放態度,除非並且直到它們處理整個應用程序中文本的動態性(我不想為每個視圖制作 Html 文件)。

尋求真誠合作。 謝謝你。

嘗試這個

        SpannableString string1=new SpannableString(yourdynamictext);

//Get Drawable
             Drawable d=getResources().getDrawable(R.drawable.ic_launcher);
        d.setBounds(0,0,d.getIntrinsicWidth(),d.getIntrinsicHeight());

// image span
        ImageSpan span2= new ImageSpan(d,ImageSpan.ALIGN_BASELINE);
            string1.setSpan(span2, 0, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
       yourtextview.setText(string1);

更新:

為你的文本視圖設置這個

yourtexview.setMovementMethod(LinkMovementMethod.getInstance());

使用ClickableSpan

這是示例

 ClickableSpan clickableSpan = new ClickableSpan() {
                @Override
                public void onClick(View textView) {
                   Toast.makeText(MainActivity.this, "Hello",Toast.LENGTH_LONG).show();
                }
            };


           string1.setSpan(clickableSpan , 0, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
           yourtextview.setText(string1);

您將需要像這樣設置兩個跨度:imagespan 和 ClickableSpan。

fun TextView.setIconifiedText(text: String, @DrawableRes iconResId: Int) {
    val clickableSpan: ClickableSpan = object : ClickableSpan() {
        override fun onClick(textView: View) {
            Log.d("", "onClick: ")
        }
    }
    SpannableStringBuilder("$text#").apply {
        setSpan(
            ImageSpan(context, iconResId, DynamicDrawableSpan.ALIGN_BOTTOM),
            text.length,
            text.length + 1,
            Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
        )
        setSpan(clickableSpan, text.length, text.length + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
    }.let {
        setText(it)
        movementMethod = LinkMovementMethod.getInstance()
    }
}

用法:

textView.setIconifiedText("your text", R.drawable.icon);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM