Res/drawableフォルダーに保存されている画像を表示できません。これを行うにはImageGetterを使用します。コードは以下のとおりです。
ImageGetter imageGetter3 = new ImageGetter() {
public Drawable getDrawable(String source) {
int id=0;
if (source.equals("smiley")) {
id = R.drawable.smiley;
}
Drawable d = getResources().getDrawable(id);
d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
return d;
}
};
directions += "Je bent bij lokaal " + vertrek.getNaam() + "\n"
+ "Sta met je rug voor de deur\n"
+ Html.fromHtml("<img src=\"smiley\">", imageGetter3, null) + " Draai naar links\n";
実行中に画面に表示されるのは、「obj」というテキストが書かれた小さな正方形です。何が問題なのでしょうか?画像が読み取れない、または他に何かありますか?画像を表示するには?
正直なところ、私はたくさんグーグルしてImageGetterの他の方法も試しましたが、どれも機能していないようです。これらも試しましたが、機能しません。
ImageGetter imageGetter2 = new ImageGetter() {
public Drawable getDrawable(String source) {
Drawable d = null;
d = Drawable.createFromPath(source);
d.setBounds(0,0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
return d;
}
};
ImageGetter imageGetter = new ImageGetter() {
public Drawable getDrawable(String source) {
Drawable drawFromPath;
int path = Route.this.getResources().getIdentifier(source, "drawable","com.prj56.tracingapp");
drawFromPath = (Drawable) Route.this.getResources().getDrawable(path);
drawFromPath.setBounds(0, 0, drawFromPath.getIntrinsicWidth(), drawFromPath.getIntrinsicHeight());
return drawFromPath;
}
};
================================================== ======= if(....){ImageView iv1 = new ImageView(this); iv1.setImageResource(R.drawable.smiley);
directions += "Je bent bij lokaal " + vertrek.getNaam() + "\n"
+ "Sta met je rug voor de deur\n";
HERE COMES THE IMAGE! BUT HOW TO DO THIS? It's within directions textview...
directions += " Draai naar links\n";
}
2016年12月12日更新:
getResources()。getDrawable()はAPI 22で廃止されたため、ContextCompat.getDrawableを使用する必要があります。
Drawable d = ContextCompat.getDrawable(context, R.drawable.smiley);
アクティビティでこれを呼び出して、DrawableリソースをDrawableオブジェクトとして取得できます
Drawable d = getResources().getDrawable(R.drawable.smiley);
ドローアブルをImageViewで表示したい場合、これを行うことができます:
ImageView i = new ImageView(this);
i.setImageResource(R.drawable.smiley);
またはあなたのxmlファイル
<ImageView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:src="@drawable/smiley"/>
PImgを使用して画像を取得できます。アダプターの位置に基づいて、画像名である文字列を取得します。画像は、ドローアブルフォルダーに存在している必要があります。
ImageView prodImg=(ImageView)view.findViewById(R.id.img_proj_name);
String pImg=prod.get(position);
int resID = view.getResources().getIdentifier("@drawable/"+pImg , "drawable", parentView.getContext().getPackageName());
prodImg.setImageResource(resID);
これを表示する非常に簡単な方法は、これをxmlのImageViewウィジェットに書き込むことです。
Android:background="@drawable/your_file_name"
...そして、その画像ファイル(pngまたはjpgなど)をドローアブルフォルダーに入れていることを確認してください。あなたが書くときyour_file_name
、必要なのはタイトルだけで、ファイル拡張子は必要ありません。
(上記の他の回答で示されているように)プログラムで.Javaファイルに書き込むよりもこの方法を好みます。xmlではプレビューで画像が表示されますが、プログラムでは表示されず、ImageViewプレースホルダーが表示されるだけです。
最も簡単な方法-以下のコードを検討することができます
Imageview setImageResourceを利用できます。以下のコードを参照してください。以下の順序のようにドローアブルに画像を入れます
image_1.png、image_2.pngなど.
int resId = getResources().getIdentifier("image_" + imagePosition, "drawable", getPackageName());
imageview.setImageResource(resId);
Drawable drawable = getResources().getDrawable(R.mydrawableID);
これで、次のようにイメージとして使用できます:-
ImageView myImage = findViewById(R.id.yourImageView);
今これを発射-
myImage.setImageResource(drawable);