❶ 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>