建立img工具类 MyImgView

public class MyImgView extends AppCompatImageView implements View.OnTouchListener, ScaleGestureDetector.OnScaleGestureListener {    boolean mBoo = true;    Matrix matrix = new Matrix();    ScaleGestureDetector scaleGestureDetector;    public MyImgView(Context context) {        super(context);    }    @Override    protected void onDraw(Canvas canvas) {        super.onDraw(canvas);        if (mBoo) {            matrix.postTranslate((getWidth() - getDrawable().getIntrinsicWidth()) / 2, (getHeight() - getDrawable().getIntrinsicHeight()) / 2);            setImageMatrix(matrix);            mBoo = false;        }    }    public MyImgView(Context context, @Nullable AttributeSet attrs) {        super(context, attrs);        setOnTouchListener(this);        scaleGestureDetector = new ScaleGestureDetector(context, this);        setScaleType(ScaleType.MATRIX);    }    @Override    public boolean onTouch(View view, MotionEvent motionEvent) {        return scaleGestureDetector.onTouchEvent(motionEvent);    }    @Override    public boolean onScale(ScaleGestureDetector scaleGestureDetector) {        float scaleFactor = scaleGestureDetector.getScaleFactor();        matrix.postScale(scaleFactor, scaleFactor, getWidth() / 2, getHeight() / 2);        setImageMatrix(matrix);        return true;    }    @Override    public boolean onScaleBegin(ScaleGestureDetector scaleGestureDetector) {        return true;    }    @Override    public void onScaleEnd(ScaleGestureDetector scaleGestureDetector) {    }}

Activity 代码

public class Activity_04 extends AppCompatActivity {    private ImageView activity04Img1;    private ImageView activity04Img2;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_04);        initView();    }    private void initView() {        activity04Img1 = (ImageView) findViewById(R.id.activity_04_img1);        activity04Img2 = (ImageView) findViewById(R.id.activity_04_img2);        activity04Img1.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                activity04Img1.setVisibility(View.GONE);                activity04Img2.setVisibility(View.VISIBLE);                activity04Img2.setImageResource(R.drawable.example_picture);            }        });    }}

xml文件

<LinearLayout        android:layout_width="match_parent"        android:layout_height="0dp"        android:layout_weight="1">        <ImageView            android:id="@+id/activity_04_img1"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:background="@drawable/example_picture" />    </LinearLayout>    <LinearLayout        android:layout_width="match_parent"        android:layout_height="0dp"        android:layout_weight="2"        android:gravity="center">        <!--写上自己建的img类路径-->        <com.baidu.demo.Util.MyImgView            android:id="@+id/activity_04_img2"            android:layout_width="400dp"            android:layout_height="400dp"            android:layout_centerInParent="true"            android:visibility="gone" />    </LinearLayout>

最后在模拟上点开图片,img1隐藏,img2居中显示,按住crtl键 鼠标移动便可放都缩小了

更多相关文章

  1. android 下获取apk的icon
  2. myAndroid(Struts2+Sitemesh+Freemarker)
  3. android layout动态布局
  4. 手机安全卫士开发系列(5)——自动更新
  5. 报错:ERROR: Your project path contains non-ASCII characters.
  6. 获取drawable里的路径
  7. android 批量上传图片
  8. Android(安卓)ADB命令大全
  9. Android解决4.4以上版本得不到路径的情况

随机推荐

  1. Android高手进阶教程(二十六)之---Androi
  2. Android加载大图防止OOM
  3. Android(安卓)RemoteViews的基本使用(上)
  4. repo详解与如何更改manifest快速获取和复
  5. Android学习10-----Android组件通信 (7)
  6. 帮助android程序实现动画特效--Lemon动画
  7. ListView中getView的原理+如何在ListView
  8. [置顶] 开发第一个Android设备驱动程序
  9. 结合Android学设计模式--开篇
  10. Android(安卓)Rild模块源码分析