gpt4 book ai didi

Android - 如何使用 Html.ImageGetter 以在编辑文本或 TextView 中显示图像数量

转载 作者:行者123 更新时间:2023-11-28 03:23:55 25 4
gpt4 key购买 nike

我想要做的是,当按下按钮时,图像将出现在编辑文本字段中。

问题是我想多次添加图像 - 这意味着每次单击都会将图像添加到字符串中。

问题是在接下来的代码中,我只能看到最后按下的图像,而之前的图像正在变成一个带有字母“obj”的小方框

这是我的 Activity 谁能看出问题出在哪里?

public class MainActivity extends Activity implements ImageGetter, OnClickListener {
EditText et;
ImageButton ib1;
ImageButton ib2;
ImageButton ib3;
Spanned spanned;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d("main", "0001");

et = (EditText)findViewById(R.id.editText1);
ib1 = (ImageButton) findViewById(R.id.imageButton1);
ib2 = (ImageButton) findViewById(R.id.imageButton2);
ib3 = (ImageButton) findViewById(R.id.imageButton3);
ib1.setOnClickListener(this);
ib2.setOnClickListener(this);
ib3.setOnClickListener(this);




}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

@Override
public Drawable getDrawable(String arg0) {


int id = 0;

if(arg0.equals("zero.png")){
id = R.drawable.emoji_0030;
}

if(arg0.equals("slash.png")){
id = R.drawable.emoji_0023;
}
LevelListDrawable d = new LevelListDrawable();
Drawable empty = getResources().getDrawable(id);
d.addLevel(0, 0, empty);
d.setBounds(0, 0, empty.getIntrinsicWidth(), empty.getIntrinsicHeight());

return d;

}

@Override
public void onClick(View v) {
switch (v.getId()){

case R.id.imageButton2:

toDisplay("zero.png");

break;

case R.id.imageButton1:
toDisplay("slash.png");

break;
}

}


public void toDisplay(String input){

String first = et.getText().toString();


String second = "<img src ='"+input+"'>";
String last = first +second;


spanned = Html.fromHtml(last, this, null);

et.setText(spanned);
et.setTextSize(16);

}

最佳答案

我认为问题出在 et.getText().toString() .它返回一些等效于 HTML 的文本,但不是 HTML 源代码本身。尝试更改您的 toDisplay(String input) :

编辑

public void toDisplay(String input){

String first = Html.toHtml(et.getText());


String second = "<img src ='"+input+"'>";
String last = first +second;


spanned = Html.fromHtml(last, this, null);

et.setText(spanned);
et.setTextSize(16);

}

但对我来说,它在新行上添加了新图像。它发生的原因是Html.toHtml()将文本按 <p></p> 换行标签。我认为你必须玩String last = first +second;通过在 <p></p> 中插入来替换简单的连接.

希望对您有所帮助。

关于Android - 如何使用 Html.ImageGetter 以在编辑文本或 TextView 中显示图像数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22468255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com