下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】AndroidTextView中如何显示图片
1、XML文件中指定属性值<TextView
android:id="@+id/textview_01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableTop="@drawable/ic_launcher"
android:text="hello_world"
/>mTextView01.setCompoundDrawablesWithIntrinsicBounds(null,
getResources().getDrawable(R.drawable.ic_launcher,
null),
null,
null);/upload/information/20200623/125/123887.pngandroid:drawablePadding="10dp"mTextView01.setCompoundDrawablePadding(10);2、通过解析HTML来显示图片显示项目中图片//
第二种方式:显示项目中的图片mTextView02
=
(TextView)
findViewById(R.id.textview_02);//
把图片生成的ID加入img标签中
<img
src='123'>String
htmlFor02
=
"项目图片测试:"
+
"<img
src='"
+
R.drawable.ic_launcher
+
"'>"
+
"<img
src='"
+
R.drawable.apple
+
"'>";
mTextView02.setText(Html.fromHtml(htmlFor02,
new
Html.ImageGetter()
{
@Override
public
Drawable
getDrawable(String
source)
{
Log.d(TAG,
"项目图片测试_source:"
+
source);
int
id
=
Integer.parseInt(source);
Drawable
drawable
=
getResources().getDrawable(id,
null);
drawable.setBounds(0,
0,
drawable.getIntrinsicWidth()
,
drawable.getIntrinsicHeight());
return
drawable;
}
},
null));
/upload/information/20200623/125/123888.png获取网络图片private
static
final
String
htmlFor03
=
"网络图片测试:"
+
"<img
src='/it/u=4190601239,967361436&fm=11&gp=0.jpg'>";private
static
final
String
NET_PIC_NAME
=
"NetPic.png";//
第二种方式:显示网络图片mTextView03
=
(TextView)
findViewById(R.id.textview_03);
mTextView03.setText(Html.fromHtml(htmlFor03,
mNetWorkImageGetter,
null));private
NetWorkImageGetter
mNetWorkImageGetter
=
new
NetWorkImageGetter();
class
NetWorkImageGetter
implements
Html.ImageGetter
{
/*
*
(non-Javadoc)
*
@see
android.text.Html.ImageGetter#getDrawable(java.lang.String)
*/
@Override
public
Drawable
getDrawable(String
source)
{
Drawable
drawable
=
null;
File
file
=
new
File(Environment.getExternalStorageDirectory(),
NET_PIC_NAME);
if
(file.exists())
{
drawable
=
Drawable.createFromPath(file.getAbsolutePath());
drawable.setBounds(0,
0,
drawable.getIntrinsicWidth()
*
2,
drawable.getIntrinsicHeight()
*
2);
}
else
{
getNetworkImg(source);
}
return
drawable;
}
}/**
*
通过volley请求网络图片
*
@param
url
*/private
void
getNetworkImg(String
url)
{
Log.d(TAG,
"url:
"
+
url);
RequestQueue
queue
=
Volley.newRequestQueue(this);
ImageRequest
request
=
new
ImageRequest(url,
new
Response.Listener<Bitmap>()
{
@Override
public
void
onResponse(Bitmap
bitmap)
{
Log.d(TAG,
"onResponse");
saveMyBitmap(NET_PIC_NAME,
bitmap);
mTextView03.setText(Html.fromHtml(htmlFor03,
mNetWorkImageGetter,
null));
}
},
0,
0,
ScaleType.CENTER,
Config.RGB_565,
new
ErrorListener()
{
@Override
public
void
onErrorResponse(VolleyError
error)
{
Log.d(TAG,
"onErrorResponse:"
+
error);
}
});
queue.add(request);
}/**
*
保存获取到的网络图片到sdcard
*
@param
bitName
*
@param
mBitmap
*/public
void
saveMyBitmap(String
bitName,
Bitmap
mBitmap)
{
File
f
=
new
File("/sdcard/"
+
bitName);
try
{
f.createNewFile();
}
catch
(IOException
e)
{
}
FileOutputStream
fOut
=
null;
try
{
fOut
=
new
FileOutputStream(f);
}
catch
(FileNotFoundException
e)
{
e.printStackTrace();
}
mBpress(Bitmap.CompressFormat.PNG,
100,
fOut);
try
{
fOut.flush();
}
catch
(IOException
e)
{
e.printStackTrace();
}
try
{
fOut.close();
}
catch
(IOException
e)
{
e.printStackTrace();
}
}/upload/information/20200623/125/123889.png3、通过ImageSpan和SpannableString//
第三种方式
mTextView04
=
(TextView)
findViewById(R.id.textview_04);ImageSpan
imgSpan
=
new
ImageSpan(this,
R.drawable.apple);SpannableString
spannableString
=
new
SpannableString("012345");spannableString.setSpan(imgSpan,
1,
5,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);mTextView04.setText(spannableString);/upload/information/20200623/125/123890.png4、通过继承TextView方式public
class
MyTextView
extends
TextView
{
private
Bitmap
mBitmap;
/**
*
@param
context
*
@param
attrs
*/
public
MyTextView(Context
context,
AttributeSet
attrs)
{
super(context,
attrs);
mBitmap
=
BitmapFactory.decodeResource(context.getResources(),
R.drawable.apple);
setTextSize(40);
}
@Override
protected
void
onDraw(Canvas
canvas)
{
canvas.drawBitmap(mBitmap,
0,
0,
getPaint());
super.onDraw(canvas);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论