public class ex04_22 extends Activity{    private ImageView mImageView; private Button btn1,btn2; private TextView mTextView; private AbsoluteLayout layout1; private Bitmap bmp; private int id=0; private int displayWidth,displayHeight; private float scaleWidth=1,scaleHeight=1; private final static String filename="/data/data/ex04_22.lcs/ex04_22_2.png";    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        //取得屏幕分辨率        DisplayMetrics dm=new DisplayMetrics();        getWindowManager().getDefaultDisplay().getMetrics(dm);        displayWidth=dm.widthPixels;        displayHeight=dm.heightPixels-80;               bmp=BitmapFactory.decodeResource(this.getResources(),R.drawable.ex04_22_1);        layout1=(AbsoluteLayout)findViewById(R.id.layout1);        mImageView=(ImageView)findViewById(R.id.myImageView);        btn1=(Button)findViewById(R.id.myButton1);        btn1.setOnClickListener(new OnClickListener(){         public void onClick(View v){          small();         }        });        btn2=(Button)findViewById(R.id.myButton2);        btn2.setOnClickListener(new OnClickListener(){         public void onClick(View v){          big();         }        });    }    private void small(){     //获得Bitmap的高和宽     int bmpWidth=bmp.getWidth();     int bmpHeight=bmp.getHeight();     //设置缩小比例     double scale=0.8;     //计算出这次要缩小的比例     scaleWidth=(float)(scaleWidth*scale);     scaleHeight=(float)(scaleHeight*scale);     //产生resize后的Bitmap对象     Matrix matrix=new Matrix();     matrix.postScale(scaleWidth, scaleHeight);     Bitmap resizeBmp=Bitmap.createBitmap(bmp, 0, 0, bmpWidth, bmpHeight, matrix, true);     if(id==0){      layout1.removeView(mImageView);     }     else{      layout1.removeView((ImageView)findViewById(id));           }     id++;     ImageView imageView=new ImageView(this);     imageView.setId(id);     imageView.setImageBitmap(resizeBmp);     layout1.addView(imageView);     setContentView(layout1);     btn2.setEnabled(true);    }    private void big(){     //获得Bitmap的高和宽     int bmpWidth=bmp.getWidth();     int bmpHeight=bmp.getHeight();     //设置缩小比例     double scale=1.25;     //计算出这次要缩小的比例     scaleWidth=(float)(scaleWidth*scale);     scaleHeight=(float)(scaleHeight*scale);     //产生resize后的Bitmap对象     Matrix matrix=new Matrix();     matrix.postScale(scaleWidth, scaleHeight);     Bitmap resizeBmp=Bitmap.createBitmap(bmp, 0, 0, bmpWidth, bmpHeight, matrix, true);     if(id==0){      layout1.removeView(mImageView);     }     else{      layout1.removeView((ImageView)findViewById(id));           }     id++;     ImageView imageView=new ImageView(this);     imageView.setId(id);     imageView.setImageBitmap(resizeBmp);     layout1.addView(imageView);     setContentView(layout1);     if(scaleWidth*scale*bmpWidth>displayWidth||scaleHeight*scale*scaleHeight>displayHeight){      btn2.setEnabled(false);     }    }}xml文件<?xml version="1.0" encoding="utf-8"?><AbsoluteLayout    android:id="@+id/layout1"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    xmlns:android="http://schemas.android.com/apk/res/android"  >    <ImageView      android:id="@+id/myImageView"      android:layout_width="200px"      android:layout_height="150px"      android:src="@drawable/ex04_22_1"      android:layout_x="0px"      android:layout_y="0px"    >    </ImageView>    <Button      android:id="@+id/myButton1"      android:layout_width="90px"      android:layout_height="60px"      android:text="缩小"      android:textSize="18sp"      android:layout_x="20px"      android:layout_y="372px"    >    </Button>    <Button      android:id="@+id/myButton2"      android:layout_width="90px"      android:layout_height="60px"      android:text="放大"      android:textSize="18sp"      android:layout_x="210px"      android:layout_y="372px"    >    </Button>  </AbsoluteLayout>

更多相关文章

  1. 计算图片缩小比例
  2. android ui 更新 示例
  3. LeakCanary - Android内存检测工具
  4. Android中的Parcelable接口和Serializable使用方法和差别
  5. android listView性能优化
  6. Android中Sax解析与Dom解析xml文件
  7. Android(安卓)Telephony分析(四) ---- TelephonyManager详解
  8. Android版的模拟交通灯
  9. About Unit Test In Android(安卓单元测试研究,附技术分享ppt)

随机推荐

  1. Dex文件结构
  2. Windows phone应从Android吸取四点教训
  3. Android(安卓)Studio JNI 开发简单案例
  4. android轮询最佳实践service+AlarmManage
  5. Android桌面管理
  6. Android(安卓)弹无虚发之第五弹:来点儿不
  7. android绚丽的ListView表格效果的实现
  8. Android基础知识(2)—事件处理
  9. AppCompatActivity实现全屏
  10. view的绘制机制(一)