❶ Android 怎么用网上的图片设置ImageView背景
Android 用网上的图片设置ImageView背景可以使用如下方法:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.myimage);
ImageView image1 = (ImageView) findViewById(R.myImage.image);
//Bitmap bitmap = getLoacalBitmap(“/aa/aa.jpg”); //从本地取图片
Bitmap bitmap = getHttpBitmap(“http://blog.3gstdy.com/wp-content/themes/twentyten/images/headers/path.jpg”); //从网上取图片
image1 .setImageBitmap(bitmap); //设置Bitmap
}
/**
* 加载本地图片
* http://bbs.3gstdy.com
* @param url
* @return
*/
public static Bitmap getLoacalBitmap(String url) {
try {
FileInputStream fis = new FileInputStream(url);
return BitmapFactory.decodeStream(fis);
} catch (FileNotFoundException e) {
e.printStackTrace();
return null;
}
}
/**
* 从服务器取图片
*http://bbs.3gstdy.com
* @param url
* @return
*/
public static Bitmap getHttpBitmap(String url) {
URL myFileUrl = null;
Bitmap bitmap = null;
try {
Log.d(TAG, url);
myFileUrl = new URL(url);
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
HttpURLConnection conn = (HttpURLConnection) myFileUrl
.openConnection();
conn.setConnectTimeout(0);
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();
bitmap = BitmapFactory.decodeStream(is);
is.close();
} catch (IOException e) {
e.printStackTrace();
}
return bitmap;
}
❷ android 开发ImageView随机背景图片的问题。
不就是动态设置布局么,说的那么复杂。
ImageView 设置一个ID
在Button的点击事件里面做如下处理:
1. 比如5张图片,那么int数组里面存他们的图片资源id,进行随机产生数字。然后根据不同的数字去int数组找到相应下标对象的图片资源id.
2. 调用 setBackgroud.. 方法设置背景图。
❸ android volley networkimageview 怎样清除缓存
@author
* @date 2015/4/14
* 利用文件缓存图片
*/
public class ImageFileCacheUtils {
private static final String CHCHEDIR = "ImageChace";//缓存目录
private static final String WHOLESALE_CONV = ".cache";//缓存文件后缀名
private static final int MB = 1024 * 1024;
private static final int CACHE_SIZE = 80;//缓存最大容量(超过就会利用lru算法删除最近最少使用的缓存文件)
private static final int FREE_SD_SPACE_NEEDED_TO_CACHE = 100;//缓存所需SD卡所剩的最小容量
private static ImageFileCacheUtils instance = null;
//单例模式
public static ImageFileCacheUtils getInstance(){
if (instance == null) {
synchronized (ImageFileCacheUtils.class) {
if (instance == null) {
instance = new ImageFileCacheUtils();
}
}
❹ android 从服务器得到图片地址,然后怎么才能将其作为背景显示在响应的控件上imageview
使用开源库,ImageLoader可以轻松完成你的需求
可以设置加载时显示的图片,加载失败显示的图片等等,异步加载图片都是用这个类库的
当你设置好缓存和参数后
一行代码就搞定ImageLoader.getInstance().displayImage(imageUrl, imageView);
或者
ImageLoader.getInstance().displayImage(imageUrl, imageView,options);
// imageUrl代表图片的URL地址,imageView代表承载图片的IMAGEVIEW控件 , options代表DisplayImageOptions配置文件
❺ Android 将ImageView中的图片保存到本地
从网络上获取的图片。你可以获得图片image对象的话,就可以保存了。
❻ ios开发中怎么释放imagenamed这个方法带来的内存缓存
这个类库提供一个UIImageView类别以支持加载来自网络的远程图片。具有缓存管理、异步下载、同一个URL下载次数控制和优化等特征。使用示范的代码:UITableView使用UIImageView+WebCache类(基本应用,UIImageView的一个category)前提#import导入UIImageView+WebCache.h文件,然后在tableview的cellForRowAtIndexPath:方法下:-(UITableViewCell*)tableView:(UITableView*):(NSIndexPath*)indexPath{staticNSString*MyIdentifier=@"MyIdentifier";UITableViewCell*cell=[:MyIdentifier];if(cell==nil){cell=[[UITableViewCellalloc]initWithStyle::MyIdentifier]autorelease];}//:methodtoloadthewebimage[cell.imageViewsetImageWithURL:[NSURLURLWithString:@"/path/to/image.jpg"]placeholderImage:[UIImageimageNamed:@"placeholder.png"];cell.textLabel.text=@"MyText";returncell;}基本代码:[imageViewsetImageWithURL:[NSURLURLWithString:@"/path/image.jpg"];使用SDWebImageManager类:可以进行一些异步加载的工作。SDWebImageManager*manager=[];UIImage*cachedImage=[managerimageWithURL:url];//将需要缓存的图片加载进来if(cachedImage){//如果Cache命中,则直接利用缓存的图片进行有关操作//Usethecachedimageimmediatly}else{//如果Cache没有命中,则去下载指定网络位置的图片,并且给出一个委托方法//Startanasyncdownload[managerdownloadWithURL:urldelegate:self];}当然你的类要实现SDWebImageManagerDelegate协议,并且要实现协议的webImageManager:didFinishWithImage:方法。//当下载完成后,调用回调方法,使下载的图片显示-(void)webImageManager:(SDWebImageManager*):(UIImage*)image{//}独立的异步图像下载可能会单独用到异步图片下载,则一定要用downloaderWithURL:delegate:来建立一个SDWebImageDownloader实例。downloader=[:urldelegate:self];这样SDWebImageDownloaderDelegate协议的方法imageDownloader:didFinishWithImage:被调用时下载会立即开始并完成。独立的异步图像缓存SDImageCache类提供一个创建空缓存的实例,并用方法imageForKey:来寻找当前缓存。UIImage*myCachedImage=[SDImageCachesharedImageCache]imageFromKey:myCacheKey];存储一个图像到缓存是使用方法storeImage:forKey:[SDImageCachesharedImageCache]storeImage:myImageforKey:myCacheKey];默认情况下,图像将被存储在内存缓存和磁盘缓存中。如果仅仅是想内存缓存中,要使用storeImage:forKey:toDisk:方法的第三个参数带一负值来替代。SDWebImage支持异步的图片下载+缓存,提供了UIImageView+WebCacha的category,方便使用。纪录一下SDWebImage加载图片的流程。入口setImageWithURL:placeholderImage:options:会先把placeholderImage显示,然后SDWebImageManager根据URL开始处理图片。进入SDWebImageManager-downloadWithURL:delegate:options:userInfo:,交给SDImageCache从缓存查找图片是否已经下载queryDiskCacheForKey:delegate:userInfo:.先从内存图片缓存查找是否有图片,如果内存中已经有图片缓存,SDImageCacheDelegate回调imageCache:didFindImage:forKey:userInfo:到SDWebImageManager。SDWebImageManagerDelegate回调webImageManager:didFinishWithImage:到UIImageView+WebCache等前端展示图片。如果内存缓存中没有,生成NSInvocationOperation添加到队列开始从硬盘查找图片是否已经缓存。根据URLKey在硬盘缓存目录下尝试读取图片文件。这一步是在NSOperation进行的操作,所以回主线程进行结果回调notifyDelegate:。如果上一操作从硬盘读取到了图片,将图片添加到内存缓存中(如果空闲内存过小,会先清空内存缓存)。SDImageCacheDelegate回调imageCache:didFindImage:forKey:userInfo:。进而回调展示图片。如果从硬盘缓存目录读取不到图片,说明所有缓存都不存在该图片,需要下载图片,回调imageCache:didNotFindImageForKey:userInfo:。共享或重新生成一个下载器SDWebImageDownloader开始下载图片。图片下载由NSURLConnection来做,实现相关delegate来判断图片下载中、下载完成和下载失败。connection:didReceiveData:中利用ImageIO做了按图片下载进度加载效果。connectionDidFinishLoading:数据下载完成后交给SDWebImageDecoder做图片解码处理。图片解码处理在一个NSOperationQueue完成,不会拖慢主线程UI。如果有需要对下载的图片进行二次处理,最好也在这里完成,效率会好很多。在主线程:宣告解码完成,imageDecoder:didFinishDecodingImage:userInfo:回调给SDWebImageDownloader。imageDownloader:didFinishWithImage:回调给SDWebImageManager告知图片下载完成。通知所有的downloadDelegates下载完成,回调给需要的地方展示图片。将图片保存到SDImageCache中,内存缓存和硬盘缓存同时保存。写文件到硬盘也在以单独NSInvocationOperation完成,避免拖慢主线程。SDImageCache在初始化的时候会注册一些消息通知,在内存警告或退到后台的时候清理内存图片缓存,应用结束的时候清理过期图片。SDWI也提供了UIButton+WebCache和MKAnnotationView+WebCache,方便使用。SDWebImagePrefetcher可以预先下载图片,方便后续使用。SDWebImage库的作用:通过对UIImageView的类别扩展来实现异步加载替换图片的工作。
❼ android 已知本地图片的路径,如何将他设为imageview的背景
android已知本地图片的路径,将他设为imageview的背景,文件夹的路径:
String img_path = "image will be with image type";
Bitmap bmp= BitmapFactory.decodeFile(img_path);
ImageView iv= (ImageView)findViewById(R.id.img);
iv.setImageBitmap(bmp)。
添加文件的权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
❽ Android UI更新中 ImageView使用setBackgroundResource多次更新图片失效
有缓存,要把缓存删掉,或者把图片名称换了,重新把图片下载下来
❾ Android:Imageview放在最底层被背景覆盖住
使用RelativeLayout 布局。
把 图标放在RelativeLayout的 最开始的位置,设置属性为父视图的左下角。
就不会被遮挡了
❿ 如何让ImageView的背景图片不缩放
经常我们会有这种情况,就是当我们在使用imageview控件的时候,肯定会使用图片作为其背景,而且往往我们的图片是作为按钮,引导用户点击。现在问题是,我们的图片素材比较小,而ImageView需要大点,这样才不会影响到用户的点击。如果使用 android:background 属性,那么图片会被放大比较难看,现在我们只需要使用到ImageView的 android:src属性,配合上 android:scaleType="center",那么图片就不会随着ImaageView放大而放大了。如下:
<LinearLayout
android:id="@+id/btn_bar_play"
android:layout_width="30dp"
android:layout_height="fill_parent"
android:layout_weight="0.2"
android:background="@drawable/play_bar_bg_selector"
android:gravity="center" >
<ImageView
android:id="@+id/music_play"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/bt_minibar_play_nor"
android:background="@drawable/play_bar_bg_selector"
android:gravity="center"
android:clickable="false"
android:scaleType="center"
android:textSize="12sp" />
</LinearLayout>