十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
android中的imageview只能显示矩形的图片,这样一来不能满足我们其他的需求,比如要显示圆形的图片,这个时候,我们就需要自定义imageview了,其原理就是首先获取到图片的bitmap,然后进行裁剪圆形的bitmap,然后在ondraw()进行绘制圆形图片输出。
公司主营业务:成都做网站、成都网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出东平免费做网站回馈大家。
ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shu" /
说明几点:
1、项目中资源文件名称不要用中文,把“树”改成"shu"
2、启动一个模拟器或者先连接自己的手机,在DDMS查看,如果有设备说明连接成功了,这时就可以运行这个程序了。
在android当中显示一张网络图片的时候,其实是比较麻烦的。首先得把这个网络图片转换成java的imputstream流,然后再把这个留转换成一个bitMap.
bitMap是可以作为参数传给imageView的。
在下边的returnBitMap函数是最核心的,也是大家可以重用的,它负责把一个url的网络图片变成一个本地的BitMap。
package com.jinyan.image;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
public class ActivityMain extends Activity {
/** Called when the activity is first created. */
String imageUrl = "";
Bitmap bmImg;
ImageView imView;
Button button1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
imView = (ImageView) findViewById(R.id.imview);
imView.setImageBitmap(returnBitMap(imageUrl));
}
public Bitmap returnBitMap(String url) {
URL myFileUrl = null;
Bitmap bitmap = null;
try {
myFileUrl = new URL(url);
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
HttpURLConnection conn = (HttpURLConnection) myFileUrl
.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();
bitmap = BitmapFactory.decodeStream(is);
is.close();
} catch (IOException e) {
e.printStackTrace();
}
return bitmap;
}
}
这里面的参数你都试一下,应该有一个可以。
ImageView的ScaleType属性
ImageView的属性android:scaleType,即
ImageView.setScaleType(ImageView.ScaleType)属性如下:CENTER
/center
按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截
取图片的居中部分显示
CENTER_CROP
/
centerCrop
按比例扩大图片的size居中显示,使得图片长
(宽)等于或大于View的长(宽)
CENTER_INSIDE
/
centerInside
将图片的内容完整居中显示,通过按比例缩小
或原来的size使得图片长/宽等于或小于View的长/宽
FIT_CENTER
/
fitCenter
把图片按比例扩大/缩小到View的宽度,居中显示
FIT_END
/
fitEnd
把
图片按比例扩大/缩小到View的宽度,显示在View的下部分位置
FIT_START
/
fitStart
把
图片按比例扩大/缩小到View的宽度,显示在View的上部分位置
FIT_XY
/
fitXY
把图片
不按比例
扩大/缩小到View的大小显示
这里面的参数你都试一下,应该有一个可以。\x0d\x0aImageView的ScaleType属性\x0d\x0aImageView的属性android:scaleType,即 ImageView.setScaleType(ImageView.ScaleType)属性如下:CENTER /center 按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截 取图片的居中部分显示\x0d\x0aCENTER_CROP / centerCrop 按比例扩大图片的size居中显示,使得图片长 (宽)等于或大于View的长(宽)\x0d\x0aCENTER_INSIDE / centerInside 将图片的内容完整居中显示,通过按比例缩小 或原来的size使得图片长/宽等于或小于View的长/宽\x0d\x0aFIT_CENTER / fitCenter 把图片按比例扩大/缩小到View的宽度,居中显示\x0d\x0aFIT_END / fitEnd 把 图片按比例扩大/缩小到View的宽度,显示在View的下部分位置\x0d\x0aFIT_START / fitStart 把 图片按比例扩大/缩小到View的宽度,显示在View的上部分位置\x0d\x0aFIT_XY / fitXY 把图片 不按比例 扩大/缩小到View的大小显示
使用ImageButton就可以实现,代码如下:
ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="center"//将控件中的图片属性定义为居中显示
android:src="@drawable/xxx" /
下面是scaleType的几种属性的含义:
ImageView.ScaleType.CENTER|android:scaleType="center" 按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示
ImageView.ScaleType.CENTER_CROP|android:scaleType="centerCrop" 按比例扩大图片的size居中显示,使得图片长 (宽)等于或大于View的长(宽)
ImageView.ScaleType.CENTER_INSIDE|android:scaleType="centerInside" 将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长(宽)等于或小于View的长(宽)
ImageView.ScaleType.FIT_CENTER|android:scaleType="fitCenter" 把图片按比例扩大(缩小)到View的宽度,居中显示
ImageView.ScaleType.FIT_END|android:scaleType="fitEnd" 把图片按比例扩大(缩小)到View的宽度,显示在View的下部分位置
ImageView.ScaleType.FIT_START|android:scaleType="fitStart" 把图片按比例扩大(缩小)到View的宽度,显示在View的上部分位置
ImageView.ScaleType.FIT_XY|android:scaleType="fitXY" 把图片按照指定的大小在View中显示
ImageView.ScaleType.MATRIX|android:scaleType="matrix" 用matrix来绘制