2013-04-20 116 views
0

如何使用Linear Layout在android ImageView上显示文本。为此目的,我发现了很多堆栈溢出的例子,但都是针对相对布局,帧布局但我没有在线性布局中找到它。android中的ImageView上的中心对齐文本线性布局

我已经尝试过android:text="My Text"但它没有工作。

请建议我,如果它可能这样做。如果是这样怎么办。

<ImageView 
    android:id="@+id/share_button" 
    android:layout_width="fill_parent" 
    android:layout_height="25dp" 
    android:layout_gravity="center" 
    android:layout_margin="5dp" 
    android:layout_weight="2" 
    android:text="text" 
    android:background="@drawable/iosbutton" /> 

这是连接到此ImageView的图像,我想在其中显示文本。

enter image description here

+0

乘坐TexView或按钮设置它的背景如上形象和的setText为他们.. – Pragnani 2013-04-20 14:56:15

+0

@pragnani我不能改变元素类型,因为它已经由一个开发人员编码,她没有降低以改变类型。 – 2013-04-20 14:58:09

+1

试着说服她,这可能不是最好的“不允许”这样的变化。 – 2013-04-20 15:42:45

回答

1

试试这个

使用此方法

public BitmapDrawable writeOnDrawable(int drawableId, String text){ 

    Bitmap bm = BitmapFactory.decodeResource(getResources(), drawableId).copy(Bitmap.Config.ARGB_8888, true); 

    Paint paint = new Paint(); 
    paint.setStyle(Style.FILL); 
    paint.setColor(Color.BLACK); 
    paint.setTextSize(20); 

    Canvas canvas = new Canvas(bm); 
    canvas.drawText(text, 0, bm.getHeight()/2, paint); 

    return new BitmapDrawable(bm); 
} 

呼叫这样

ImageView image=(ImageView)findViewById(R.id.imageView1); 
image.setImageDrawable(writeOnDrawable(R.drawable.ic_launcher,"Hello")); 
+0

这是一个有趣的解决方案,虽然不完整:硬编码的字体大小(以像素为单位)和错误的定位。 – 2013-04-20 15:37:57

+0

@MaciejGórski如果您发现下面的评论问题,我已经建议他使用TextView或Button,在您评论某人的答案之前,您是正确的。而且,根据图像大小动态改变字体大小也不是一件大事,他会照顾到这一点......这很有趣。 – Pragnani 2013-04-20 15:40:09

+0

@pragnani雅这就是我想要但还有一件事情不能做到离子xml只。我今天的所有选票都用尽了,我不能让你投票,但明天我会做。 – 2013-04-22 10:45:09

1

是否必须是一个ImageView的?

<TextView 
    android:id="@+id/share_button" 
    android:layout_width="fill_parent" 
    android:layout_height="25dp" 
    android:layout_gravity="center" 
    android:layout_margin="5dp" 
    android:layout_weight="2" 
    android:text="text" 
    android:gravity="center" 
    android:background="@drawable/iosbutton" /> 
+1

这个答案是正确的(如果这是id/share_button则使用Button)。无论出于什么奇怪的原因,如果您无法更改share_button类型,您可能总是将TextView添加到布局,并将其对齐到share_button顶部。使用RelativeLayout时很容易:layout_alignTop,_alignLeft等全部设置为share_button。 – 2013-04-20 15:20:44

+1

@MaciejGórski但他的要求是使用ImageView检查下面的评论问题。并且这不提供答案 – Pragnani 2013-04-20 15:27:40

+0

@Pragnani雅你是绝对正确的。 MaciejGórski这不是我想要的。 – 2013-04-22 10:30:32