5

我正在尝试在 Edittext 中插入一个 textview,如下所示

在此处输入图像描述

任何人都可以给我关于如何实现它或其他东西的想法。

谢谢 :)

更新: edittext 中的文本视图会动态变化。

4

4 回答 4

3

试试这个示例代码。它符合您的要求。

PopupWindow pw = new PopupWindow(
                                 this.getViewInflate().inflate(R.layout.pw_layout, 
                                                               null, true, null), 
                                100,100,true);
// display the popup in the center
pw.showAtLocation(layout, Gravity.CENTER, 0, 0);
pw.update(20,20,100,100);

对于内部视图EditText,您必须扩展EditText. 它的外观概述如下。

class emailEditText extends EditText {

List<NamePhotoView> ViewlistOfSelectedContacts; // create new

    void addContact(String name, Bitmap photo) {
       // create a new 'NamePhotoView' and add to the ViewlistOfSelectedContacts
    }

    @Override
    void onDraw(Canvas canvas) {
        for (....) {
            // draw all views from the list. left to right.
        }
    // you have to some how offset the text start coordinate. then call super
    super.onDraw(canvas);
    }
}
于 2012-05-19T10:55:31.477 回答
2

我认为你不能TextView在里面设置EditText。但或者你可以让它看起来那样。以下是步骤

  1. 将文本视图转换为BitmapDrawable
  2. 将可绘制的位图转换为SpanableString( ImageSpan)
  3. 然后将其设置SpannableString为您的EditText

我最近完成了这种 ui,我在我的博客中解释了使 GoSmsPro/Evernote 像 EditText

于 2012-05-20T07:59:22.683 回答
2

Android 实现它的方式,即所谓的Chips UI,可以在这里找到。
本质上,它是一种span在文本上绘制组件(图像、文本等)的自定义,以及一些显示弹出窗口的逻辑。

于 2013-03-14T10:45:41.823 回答
1

您可以像上面提到的框架布局一样根据您的需要创建一个组件。当文本视图位于 EditText 之上时,您可能有一个带有两个视图的 FrameLayout 或 RelativeLayout,例如 EditText 和 TextView。如果你想要像你的图片一样,你也可以把图像视图放在右边。

尽管您不需要创建组件并且可以轻松地在 XML 布局中执行此操作,但如果您计划在应用程序中定期使用它,最好将这些视图创建为组件。

于 2012-05-19T10:56:53.040 回答