Fit to Android Imageview Matrix Center of Screen

孤街浪徒 提交于 2019-12-11 01:10:00

问题


Hello Im using a function for fit to screen on this topic Android image view matrix scale + translate

float imageWidth = imageDetail.getDrawable().getIntrinsicWidth();
    float imageHeight = imageDetail.getDrawable().getIntrinsicHeight();
    RectF drawableRect = new RectF(0, 0, imageWidth, imageHeight);
    RectF viewRect = new RectF(0, 0, imageDetail.getWidth(),
            imageDetail.getHeight());
    matrix.setRectToRect(drawableRect, viewRect, Matrix.ScaleToFit.CENTER);
    imageDetail.setImageMatrix(matrix);
    imageDetail.invalidate();

It works effectively but not the first time. When I start the application It doesnt work. Image doesnt show. When I m tap It works. What Im do wrong? Thanks for any advice


回答1:


Hi you should place your code in onWindowFocusChanged method.

@Override
public void onWindowFocusChanged(boolean hasFocus) {

    super.onWindowFocusChanged(hasFocus);

    float imageWidth = image.getDrawable().getIntrinsicWidth();
    float imageHeight = image.getDrawable().getIntrinsicHeight();
    RectF drawableRect = new RectF(0, 0, imageWidth, imageHeight);
    RectF viewRect = new RectF(0, 0, image.getWidth(),
            image.getHeight());
    Matrix matrix = new Matrix();
    matrix.setRectToRect(drawableRect, viewRect, Matrix.ScaleToFit.CENTER);
    image.setImageMatrix(matrix);
    image.invalidate();
}


来源:https://stackoverflow.com/questions/24381775/fit-to-android-imageview-matrix-center-of-screen

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!