你能否告诉我是否有办法在图像周围布置文字?像这样:
------ text text text
| | text text text
----- text text text
text text text text
text text text text
Run Code Online (Sandbox Code Playgroud)
我从android开发者那里得到了关于这个问题的回复.但我不确定通过自己的TextView版本意味着什么?感谢任何提示.
2010年2月8日星期一晚上11:05,Romain Guy写道:
嗨,
仅使用提供的小部件和布局无法做到这一点.您可以编写自己的TextView版本来执行此操作,这应该不难.

我试图在ImageView周围对齐TextView.我使用以下代码:
private void createSpannableText(){
TextView myTextView = (TextView) findViewById(R.id.textView);
SpannableStringBuilder builder = new SpannableStringBuilder();
builder.append(this.getText(R.string.loren__ipsum__max));
int lengthOfPart1 = builder.length();
builder.append(" ");
builder.append(this.getText(R.string.lorem__ipsum));
Drawable d = getResources().getDrawable(R.drawable.myImage);
d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight()); // <---- Very important otherwise your image won't appear
ImageSpan myImage = new ImageSpan(d);
builder.setSpan(myImage, 0, lengthOfPart1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
myTextView.setText(builder);
}
Run Code Online (Sandbox Code Playgroud)
但无法得到确切的结果.我该怎么办?在这种情况下我需要使用SpannableStringBuilder还是有另一种方法.请帮忙.我使用这个帖子http://majaxandroidtips.blogspot.in/2009/06/how-to-have-few-layout-elements-wrap_17.html 来获得解决方案.
PS:我还希望ImageView周围有6dp的边距

我正在使用列表视图来显示我想要像上面的图像一样显示的图像和文本,任何人都可以建议我如何用webview包装图像周围的文本.我使用以下代码:
Drawable dIcon = getResources().getDrawable(R.drawable.video_icon);
int leftMargin = dIcon.getIntrinsicWidth() + 10;
ImageView icon = (ImageView) findViewById(R.id.icon);
icon.setBackgroundDrawable(dIcon);
SpannableString ss = new SpannableString(text);
ss.setSpan(new MyLeadingMarginSpan2(3, leftMargin), 0, ss.length(), 0);
TextView messageView = (TextView) findViewById(R.id.message_view);
messageView.setText(ss);
Run Code Online (Sandbox Code Playgroud)
类
class MyLeadingMarginSpan2 implements LeadingMarginSpan2 {
private int margin;
private int lines;
MyLeadingMarginSpan2(int lines, int margin) {
this.margin = margin;
this.lines = lines;
}
@Override
public int getLeadingMargin(boolean first) {
if (first) {
return margin;
} else {
return 0;
}
}
@Override
public void drawLeadingMargin(Canvas …Run Code Online (Sandbox Code Playgroud)