Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 如何镜像整个显示?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我希望能够镜像我的应用程序,以便可以在车辆的挡风玻璃上查看. @H_618_5@ @H_618_5@我的XML有几个嵌套的LinearLayouts,TextViews和ImageViews.目前我正在改造每一个,然它是镜像的,但元素的结构却不是(顶部的内容现在位于底部).

@H_618_5@我一直在寻找几天,到目前为止已经尝试了几种失败的@L_772_4@.

@H_618_5@使用矩阵在X轴上翻转的动画有效,除了它还原后还是保持不更新,这对于与应用程序交互没有好处.

@H_618_5@我只是尝试创建一个自定义的LinearLayout来扩展父类,希望我可以在它的onDraw()@L_772_4@中应用一个矩阵,但这会给我一个空白的屏幕(我必须设置setWillNotDraw(false);来点击onDraw()) .

@H_801_15@解决方法
最终我找到了一个适合我的解决方案(到目前为止,它对用户没有任何问题). @H_618_5@ @H_618_5@我的解决方案是覆盖dispatchDraw以在我的自定义LinearLayout中缩放画布.然后我只需要通过覆盖dispatchTouchEvent来触发触摸事件:

@H_618_5@
public class Customcatontainer extends LinearLayout {

    public Customcatontainer(Context context) {
        super(context);
        this.setWillNotDraw(false); 
    }

    public Customcatontainer(Context context,AttributeSet attrs) {
        super(context,attrs);
        this.setWillNotDraw(false); 
    }

    public Customcatontainer(Context context,AttributeSet attrs,int defStylE) {
        super(context,attrs,defStylE);
        this.setWillNotDraw(false); 
    }

    @Override
    protected void dispatchDraw(Canvas canvas) {
        canvas.save(Canvas.MATRIX_SAVE_FLAG);
        // Flip the view canvas
        if (MyHUDActivity.mHUDModE) canvas.scale(1,-1,getWidth(),getHeight()/2f); 
        super.dispatchDraw(canvas); 
        canvas.restore();
    }

    @Override
    public Boolean dispatchTouchEvent(MotionEvent event) {
        // If in HUD mode then flip the touch zones
        if (MyHUDActivity.mHUDModE) event.setLOCATIOn(event.getX(),getHeight()-event.getY());
        return super.dispatchTouchEvent(event); 
    }
}

大佬总结

以上是大佬教程为你收集整理的android – 如何镜像整个显示?全部内容,希望文章能够帮你解决android – 如何镜像整个显示?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。