package org.angryfun.view;
import android.content.Context;import android.graphics.Bitmap;import android.util.AttributeSet;import android.view.ViewGroup.LayoutParams;import android.widget.ImageView;public class FitImageView extends ImageView {private Bitmap mBitmap;private int mBitmapWidth;private int mBitmapHeight;private boolean mReady;private boolean mSetupPending;public FitImageView(Context context) {super(context);init();}public FitImageView(Context context, AttributeSet attrs) {this(context, attrs, 0);}public FitImageView(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);init();}private void init() {mReady = true;if (mSetupPending) {setup();mSetupPending = false;}}private void reSize() {int width = getResources().getDisplayMetrics().widthPixels;int height = (int) (getResources().getDisplayMetrics().heightPixels * 0.8);int imgH = mBitmapHeight;int imgW = mBitmapWidth;int lastH = imgH;int lastW = imgW;double radio = 1.0;radio = (width * 1.0) / imgW;if (imgH * radio > height) {radio = (height * 1.0) / imgH;}lastH = (int) (radio * imgH);lastW = (int) (radio * imgW);LayoutParams lp = this.getLayoutParams();lp.width = lastW;lp.height = lastH;this.setLayoutParams(lp);}@Overridepublic void setImageBitmap(Bitmap bm) {super.setImageBitmap(bm);mBitmap = bm;setup();reSize();}private void setup() {if (!mReady) {mSetupPending = true;return;}if (mBitmap == null) {return;}mBitmapHeight = mBitmap.getHeight();mBitmapWidth = mBitmap.getWidth();invalidate();}}


   
从网络上下载后的图片加载在页面上按照ImageView自带的属性根本就设置不准确,所以自己重新封装了一个ImageView来实现屏幕自适配,其实原理就是重载 setImageBitmap函数,获得bitmap的宽度和高度然后根据手机屏幕大小自动调整ImageView控件的大小

              android:id="@+id/img_art_real"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:contentDescription="@null"
            android:scaleType="fitXY"
            android:layout_centerHorizontal="true" />





更多相关文章

  1. Android常用控件之RecyclerView
  2. 自定义ViewGroup onMeasure onLayout
  3. android:根据资源查找相应控件
  4. android gallery 画廊控件示例
  5. 自定义Android侧滑菜单控件
  6. 弹出NumberPicker窗口,修改字体大小
  7. 选择型控件
  8. android 获取控件宽度高度
  9. RadioGroup控件(接口类监听事件)

随机推荐

  1. android 性能优化 小技巧
  2. Android中关于自定义Dialog的使用简介
  3. Android之Intent分析
  4. 解决ScrollView与ListView的冲突的方法
  5. Android不同版本获取当前wifi信息方法
  6. [深度报道]Android国内开发者陷盈利困局
  7. android使用selector修改TextView中的字
  8. Android和H5之间的交互
  9. 【Android-Error】Android 4.4.4 java.la
  10. 深入解析_Android的自定义布局