最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android編程實現(xiàn)等比例顯示圖片的方法

 更新時間:2015年11月20日 15:02:53   作者:lee0oo0  
這篇文章主要介紹了Android編程實現(xiàn)等比例顯示圖片的方法,實例分析了Android等比例縮放圖片的具體步驟與相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了Android編程實現(xiàn)等比例顯示圖片的方法。分享給大家供大家參考,具體如下:

在android中,由于密度的影響,如果想得到圖片的寬高是不行的,具體為什么我就大概說一下,具體的請搜索度娘或者古哥吧。 原因是如果你把圖片放在drawable-mdpi里,而手機是屬于drawable-hdpi的話,圖片是被自動放大,就這樣取到的寬與高未必就是正確的。那么如何讓android上面顯示的圖片是基于原來圖片的比例呢,首先你可以在res目錄下創(chuàng)建一個drawable-nodpi的目錄,這個目錄下的圖片是不根據(jù)dpi的多少來進行拉伸或者縮小滴。然后,就是根據(jù)屏幕的寬 和 圖片的寬高 得出圖片在屏幕顯示的高,寬是固定的,就是屏幕的寬,所以不用算了。

private void getWidth_Height() {
  Display display = getWindowManager().getDefaultDisplay();
  int width = display.getWidth(); // deprecated
  int height = display.getHeight(); // deprecated
  Bitmap mBitmap = createImageWithResouce(R.drawable.history4);
  image.setLayoutParams(new LayoutParams(width, width / getBitmapWidth(mBitmap) * getBitmapHeight(mBitmap)));
  image.setImageBitmap(createImageWithResouce(R.drawable.history4));
}
private Bitmap createImageWithResouce(int resourceID) {
  Bitmap bit = BitmapFactory.decodeResource(getResources(), R.drawable.history4);
  return bit;
}
private int getBitmapWidth(Bitmap bitmap){
  return bitmap.getWidth();
}
private int getBitmapHeight(Bitmap bitmap){
  return bitmap.getHeight();
}
// 釋放bitmap
private void releaseBitmap(Bitmap bitmap){
  if (bitmap!=null && !bitmap.isRecycled()) {
   bitmap.recycle();
   bitmap = null;
  }
}

建議使用如下的這種,應(yīng)用了LruCache作為管理

public class ImageUtil {
 private LruCache<String, Bitmap> mMemoryCache;
 private final Context mContext;
 private static ImageUtil imageUtil;
 private static Object obj = new Object();
 private int memClass;
 private int cacheSize;
 private ImageUtil(Context mContext) {
  this.mContext = mContext;
  createLruCache(mContext);
 }
 private void createLruCache(Context mContext) {
  memClass = ((ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE)).getMemoryClass();
  cacheSize = 1024 * 1024 * memClass / 8;
  mMemoryCache = new LruCache<String, Bitmap>(cacheSize) {
   @Override
   protected int sizeOf(String key, Bitmap value) {
    // TODO Auto-generated method stub
    return value.getRowBytes();
   }
  };
 }
 public static ImageUtil getInstance(Context mContext) {
  if (imageUtil == null) {
   synchronized (obj) {
    if (imageUtil == null) {
     imageUtil = new ImageUtil(mContext);
    }
   }
  }
  return imageUtil;
 }
 public void adjustImageSize(ImageView imageView, int imageResourceId) {
  Bitmap mBitmap = null;
  Display display = ((MainActivity) mContext).getWindowManager().getDefaultDisplay();
  int width = display.getWidth(); // deprecated
  int height = display.getHeight(); // deprecated
  Bitmap bitmapCache = mMemoryCache.get(imageResourceId + "");
  if (bitmapCache != null) {
   mBitmap = bitmapCache;
  } else {
   mBitmap = createImageWithResouce(mContext, imageResourceId);
   mMemoryCache.put(imageResourceId + "", mBitmap);
  }
  RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(width, width
    / getBitmapWidth(mBitmap) * getBitmapHeight(mBitmap));
  layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
  imageView.setLayoutParams(layoutParams);
  imageView.setBackgroundDrawable(new BitmapDrawable(mBitmap));
  // imageView.setImageBitmap(mBitmap);
 }
 private static Bitmap createImageWithResouce(Context context, int resourceID) {
  Bitmap bit = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_launcher);
  return bit;
 }
 private int getBitmapWidth(Bitmap bitmap) {
  return bitmap.getWidth();
 }
 private int getBitmapHeight(Bitmap bitmap) {
  return bitmap.getHeight();
 }
}

希望本文所述對大家Android程序設(shè)計有所幫助。

相關(guān)文章

  • Android WebP 圖片壓縮與傳輸

    Android WebP 圖片壓縮與傳輸

    本文主要講解Android WebP 圖片壓縮與傳輸,這里對WebP圖片格式以及如何實現(xiàn)壓縮和傳輸,做了詳細講解,有需要的小伙伴可以參考下
    2016-08-08
  • Android中RecyclerView實現(xiàn)多級折疊列表效果(二)

    Android中RecyclerView實現(xiàn)多級折疊列表效果(二)

    這篇文章主要給大家介紹了Android中RecyclerView實現(xiàn)多級折疊列表的相關(guān)資料,文中介紹的非常詳細,對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。
    2017-05-05
  • android百度地圖之公交線路詳情搜索

    android百度地圖之公交線路詳情搜索

    本篇文章介紹了android百度地圖之公交線路詳情搜索,實現(xiàn)了百度搜索公交詳情具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2016-10-10
  • Android實現(xiàn)隨機生成驗證碼

    Android實現(xiàn)隨機生成驗證碼

    在登錄注冊軟件時,經(jīng)常會要求填寫隨機驗證碼,這篇文章為大家詳細主要介紹了Android實現(xiàn)隨機生成驗證碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Android實現(xiàn)短信驗證碼自動攔截讀取功能

    Android實現(xiàn)短信驗證碼自動攔截讀取功能

    這篇文章主要為大家詳細介紹了Android實現(xiàn)短信驗證碼自動攔截讀取功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • Android自定義TabLayout效果

    Android自定義TabLayout效果

    這篇文章主要為大家詳細介紹了Android自定義TabLayout效果的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • Android音視頻之視頻采集(系統(tǒng)API預(yù)覽)

    Android音視頻之視頻采集(系統(tǒng)API預(yù)覽)

    這篇文章主要為大家詳細介紹了Android音視頻之視頻采集,系統(tǒng)API預(yù)覽,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Android?ASM插樁探索實戰(zhàn)詳情

    Android?ASM插樁探索實戰(zhàn)詳情

    這篇文章主要介紹了Android?ASM插樁探索實戰(zhàn)詳情,文章圍繞主題展開詳細的內(nèi)容戒殺,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • Android中Dialog自定義上下文花式菜單

    Android中Dialog自定義上下文花式菜單

    這篇文章主要為大家詳細介紹了Android中Dialog自定義上下文花式菜單,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Android實現(xiàn)動態(tài)高斯模糊背景效果

    Android實現(xiàn)動態(tài)高斯模糊背景效果

    在現(xiàn)代 Android UI 中,動態(tài)高斯模糊背景 常見于對話框或彈窗后面的模糊遮罩,相比靜態(tài)模糊圖,動態(tài)模糊可隨著內(nèi)容滾動或變化實時更新,使界面更具層次感與沉浸感,所以本文給大家介紹了Android實現(xiàn)動態(tài)高斯模糊背景效果,需要的朋友可以參考下
    2025-04-04

最新評論

太原市| 奈曼旗| 冀州市| 佛山市| 库尔勒市| 亚东县| 长寿区| 琼中| 昭苏县| 仙居县| 衡阳县| 兴海县| 西宁市| 安宁市| 东源县| 东辽县| 小金县| 松溪县| 竹溪县| 贺兰县| 琼海市| 江永县| 保山市| 乐业县| 安丘市| 龙陵县| 岑巩县| 乌拉特中旗| 德钦县| 县级市| 武山县| 龙井市| 西城区| 宁安市| 仁布县| 鄂伦春自治旗| 广灵县| 呼伦贝尔市| 祁门县| 湖口县| 汶上县|