在android中的edittext中插入textview?

时间:2012-05-19 10:32:30

标签: android textview android-edittext android-custom-view

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

enter image description here

任何人都可以给我关于如何实现它的想法。

谢谢:)

更新 edittext中的textviews会动态变化。

4 个答案:

答案 0 :(得分: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);
    }
}

答案 1 :(得分:2)

我认为您无法在TextView内设置EditText。  但另外,你可以让它看起来那样。以下是步骤

  1. 将textview转换为BitmapDrawable
  2. 将位图drawable转换为SpanableStringImageSpan
  3. 然后将此SpannableString设置为EditText
  4. 我最近完成了这种ui,我已经在我的博客中解释了Making GoSmsPro/Evernote like EditText

答案 2 :(得分:2)

可以找到Android实现它的方式,即所谓的芯片用户界面here
基本上它是一个自定义span,它在文本上绘制组件(图像,文本等),以及显示弹出窗口的一些逻辑。

答案 3 :(得分:1)

您可以根据上面提到的框架布局所需的内容创建一个组件。你可以有一个带有两个视图的FrameLayout或RelativeLayout,例如EditText和TextView,而文本视图位于EditText之上。如果你想要像你的照片那样你也可以放置图像视图。

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