gpt4 book ai didi

android - 基于Bitmap设置FrameLayout的高度和宽度

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:39:44 26 4
gpt4 key购买 nike

我正在尝试根据 Bitmap 设置 FrameLayout 的宽度和高度,我所做的如下所示

        Bitmap theBitmap = BitmapFactory.decodeFile(theFileImage.toString());
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(theBitmap.getWidth(), theBitmap.getHeight());
frame.setLayoutParams(lp);
image.setLayoutParams(lp);
image.setImageBitmap(theBitmap);

但我得到了一个 ClassCastException

我做错了什么?

编辑:

java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams

最佳答案

要设置布局参数,您需要使用其父级的内部类 LayoutParams。

例如:如果您在 RelativeLayout 中有一个 LinearLayout,并且您需要设置线性布局的布局参数,则需要使用 RelativeLayout 的 LayoutParams 内部类。否则它会给出一个 ClassCastException。

因此,在您的情况下,要设置 FrameLayout 的布局参数,您需要使用其父布局的布局参数。假设你的布局是这样的:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<FrameLayout
android:id="@+id/flContainer"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<ImageView
android:id="@+id/image"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</FrameLayout>

</RelativeLayout>

代码:

    FrameLayout frame=(FrameLayout) findViewById(R.id.flContainer);  
ImageView image=(ImageView) findViewById(R.id.image);
Bitmap theBitmap = BitmapFactory.decodeFile(theFileImage.toString());
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(theBitmap.getWidth(), theBitmap.getHeight());
frame.setLayoutParams(lp);
image.setImageBitmap(theBitmap);

关于android - 基于Bitmap设置FrameLayout的高度和宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12192667/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com