【问题标题】:Programmatically resize framelayout以编程方式调整框架布局的大小
【发布时间】:2014-02-12 00:32:22
【问题描述】:

我有类似的东西:

  <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@drawable/photo1"
            android:orientation="vertical" >
     <FrameLayout
                android:id="@+id/photo2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" >

    </FrameLayout>
    <Fragment>

</Fragment>
    </FrameLayout>

我想调整 photo2 FrameLayout 的大小。

public void setScreenSize() {
    Display display = getWindowManager().getDefaultDisplay();
    FrameLayout layout = (FrameLayout) findViewById(R.id.photo2);
    int screen_height = display.getHeight();
    screen_height = (int) (0.60*screen_height);
    LayoutParams parms = (LayoutParams) layout.getLayoutParams();
    parms.height = screen_height;
    }

不幸的是,这不起作用,我不知道为什么。

【问题讨论】:

  • 你找到答案了吗

标签: android height android-framelayout


【解决方案1】:

您是否将高度设置回布局?

public void setScreenSize() {
    Display display = getWindowManager().getDefaultDisplay();
    FrameLayout layout = (FrameLayout) findViewById(R.id.photo2);
    int screen_height = display.getHeight();
    screen_height = (int) (0.60*screen_height);
    LayoutParams parms = (LayoutParams) layout.getLayoutParams();
    parms.height = screen_height;
    // Set it back.
    layout.setLayoutParams(parms);
}

【讨论】:

    【解决方案2】:

    如果您想以编程方式更改 FrameLyaout 的大小,请复制并粘贴此代码,它的工作 100%。

    FrameLayout frame1 = (FrameLayout) findViewById(R.id.framelayout1);
    frame1.getLayoutParams().height =460;
    frame1.getLayoutParams().width = 350;
    frame1.requestLayout();
    

    【讨论】:

    • 我已经尝试了上面的代码,但在我的情况下不起作用
    • actualImageBitmap = BitmapFactory.decodeFile(new File(Datas.received_uri.getPath()).getAbsolutePath(), options); ImageViewHeight = 选项.outHeight; ImageViewWidth = options.outWidth; img_baseview.setScaleType(ImageView.ScaleType.MATRIX); canvasView.getLayoutParams().height = ImageViewHeight; canvasView.getLayoutParams().width = ImageViewWidth; canvasView.requestLayout();
    猜你喜欢
    • 2011-12-29
    • 2012-01-22
    • 1970-01-01
    • 1970-01-01
    • 2011-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多