用文字创建图像?

时间:2016-09-13 08:33:53

标签: android image imageview fresco

我想用一些文字创建一个图像。例如,在我在这里展示的这张照片中,我想制作它以便我有一个图像或某种显示加号的文本视图,然后我将以编程方式在我的代码中设置该图像中的数字。这是一个例子:

enter image description here

正如你在这里看到的那样。我想要确切的行为:将+16设置为图像或某种我可以编程设置的文本视图。我这里有一些XML,所以我可以根据我传入的URI创建一个图像:

        <com.facebook.drawee.view.SimpleDraweeView
            android:id="@+id/commenter_photo_four"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_alignParentBottom="true"
            android:layout_marginRight="60dp"
            android:layout_marginEnd="60dp"
            android:layout_toLeftOf="@id/num_comments"
            android:layout_toStartOf="@id/num_comments"
            fresco:placeholderImage="@mipmap/blank_prof_pic"
            fresco:placeholderImageScaleType="centerCrop"
            fresco:roundBottomLeft="false"
            fresco:roundBottomRight="false"
            fresco:roundedCornerRadius="5dp"
            fresco:roundingBorderColor="@color/material_color_grey_100"
            android:layout_marginBottom="8dp"
            />

为我正确显示照片。但是,在使用android:text库时,我似乎无法插入类似setText的内容或执行某种Fresco方法(我使用的库用于渲染基于URI)。然后我尝试使用ImageView,如此:

        <ImageView
            android:id="@+id/commenter_photo_four"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_alignParentBottom="true"
            android:layout_marginRight="60dp"
            android:layout_marginEnd="60dp"
            android:layout_toLeftOf="@id/num_comments"
            android:layout_toStartOf="@id/num_comments"
            />

然后我意识到这也没有android:text能力我可以用来将图像设置为+后跟我想要设置的任何数字。有什么方法可以实现这个+16吗?我也在想我可以尝试一个带圆形背景的TextView吗?

2 个答案:

答案 0 :(得分:0)

您可以通过代码

为imageView绘制文字
Bitmap b=Bitmap.createBitmap(width, width, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
Paint p = new Paint(Paint.ANTI_ALIAS_FLAG);
c.drawText("+16",10,10,p);

ImageView i = (ImageView) findViewById(R.id.commenter_photo_four);
i.setImageBitmap(b);

答案 1 :(得分:0)

您可以在相对布局中设置imageview和textview,并设置textview的可见性消失。然后,当您想要将文本放入其中时,将textview的可见性设置为可见。