wuqianshmily 2014-03-04 23:24 采纳率: 0%
浏览 2792

android横屏后图片没有充满layout

m_iVideoLayout = new AbsoluteLayout(this.getContext());//新建layout

m_iVideoBaseLayout.addView(m_iVideoLayout, new AbsoluteLayout.LayoutParams(iVideoImageWidth, iVideoImageHeigt, 0, (iVideoAreaHeight-iVideoImageHeigt)/2 + iTitleAreaHeight ));

m_iImageView = new ImageView(this.getContext());//新建ImageView
m_iVideoLayout.addView(m_iImageView, new RelativeLayout.LayoutParams(GridLayout.LayoutParams.MATCH_PARENT,GridLayout.LayoutParams.MATCH_PARENT));//设置ImageView的布局

监听手机横屏函数:

RotateAnimation rotateAnimation = new RotateAnimation(0, 90, centerX,
centerY);
rotateAnimation.setDuration(0);
rotateAnimation.setFillAfter(true);

//改变layout的params
AbsoluteLayout.LayoutParams params = (LayoutParams) m_iVideoLayout.getLayoutParams();
params.width = height;
params.height = width;
params.y = GlobalDefine.GetYScale(78)+y;
params.x = x;

m_iVideoLayout.setLayoutParams(params);
m_iVideoLayout.startAnimation(rotateAnimation);
横屏之后,为什么imageView不能充满整个layout??
再竖屏之后又可以充满layout
怎样才能充满整个layout ,求帮忙啊!

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-01 11:57
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这个问题可能是因为在创建AbsoluteLayout.LayoutParams时,你没有正确地指定xy属性。在Android中,LayoutParams中的xy属性用于指定组件相对于其父容器的位置。

    你应该使用以下方法来设置xy属性:

    LayoutParams params = new LayoutParams(AbsLayout.LayoutParams.WRAP_CONTENT, AbsLayout.LayoutParams.WRAP_CONTENT);
    

    这样就可以确保ImageView占据整个AbsoluteLayout的空间,并且不会溢出。

    另外,为了确保ImageView始终居中显示,你可以将params.y设置为GlobalDefine.GetYScale(78)加上y值,然后将params.x设置为x值。

    最后,当你旋转屏幕时,你需要重新计算LayoutParams以确保ImageView仍然居中显示。这可以通过添加一个监听器并在旋转过程中调用这个监听器的方法来实现。

    public void onWindowFocusChanged(boolean hasFocus) {
        if (!hasFocus) return;
        
        // 计算新的参数
        AbsoluteLayout.LayoutParams params = (LayoutParams) m_iVideoLayout.getLayoutParams();
        int y = GlobalDefine.GetYScale(78) - ((int) m_iVideoLayout.getHeight() / 2);
        params.y = y;
        params.x = (int) m_iVideoLayout.getWidth() / 2;
        
        // 更新LayoutParams并重新设置
        m_iVideoLayout.setLayoutParams(params);
    }
    

    现在,当你的应用横屏时,ImageView应该能够占据整个AbsoluteLayout

    评论
    编辑
    预览

    报告相同问题?

    悬赏问题

    • ¥15 QuartusII9.0安装问题
    • ¥15 访问url时不会自动调用其 Servlet的doGet()
    • ¥15 用白鹭引擎开发棋牌游戏的前端为什么这么难找
    • ¥15 MATLAB解决问题
    • ¥35 哪位专业人士知道这是什么原件吗?哪里可以买到?
    • ¥15 关于#c##的问题:treenode反序列化后获取不到上一节点和下一节点,Fullpath和Handle报错
    • ¥15 一部手机能否同时用不同的app进入不同的直播间?
    • ¥15 没输出运行不了什么问题
    • ¥20 输入import torch显示Intel MKL FATAL ERROR,系统驱动1%,: Cannot load mkl_intel_thread.dll.
    • ¥15 点云密度大则包围盒小
    手机看
    程序员都在用的中文IT技术交流社区

    程序员都在用的中文IT技术交流社区

    专业的中文 IT 技术社区,与千万技术人共成长

    专业的中文 IT 技术社区,与千万技术人共成长

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    客服 返回
    顶部