重画

解决方案 »

  1.   


    能否指出源码中实现的位置,谢谢
      

  2.   

    源代码没看过,但可以通过缩小算法重新生成一个图片就OK了,算法网上有很多种
      

  3.   

    给你段缩小的代码,缩放时需要把原来layout中的ImageView删除,再添加缩放后的ImageView,就实现了缩放。放大功能类似。
    /* 设置图片缩小的比例 */
    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)      {
    /* 如果是第一次按,就删除原来默认的ImageView */
    layoutImage.removeView(mImageView);
    } else {
    /* 如果不是第一次按,就删除上次放大缩小所产生的ImageView */
    layoutImage.removeView((ImageView)findViewById(id));


    /* 产生新的ImageView,放入reSize的Bitmap对象,再放入Layout中 */
    id++;
    ImageView imageView = new ImageView(this);
    imageView.setId(id);
    imageView.setImageBitmap(resizeBmp);
    layoutImage.addView(imageView);
    Log.i(TAG, "imageView.getWidth() = " + imageView.getWidth()
    + ", imageView.getHeight() = " + imageView.getHeight());
    setContentView(layout1);