12

FrameLayoutに基づいて の幅と高さを設定しようとしてBitmapいます。

        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
4

2 に答える 2

15

レイアウト パラメータを設定するには、その親の内部クラス LayoutParams を使用する必要があります。

例: RelativeLayout 内に LinearLayout があり、Linear Layout のレイアウト パラメータを設定する必要がある場合は、RelativeLayout の LayoutParams 内部クラスを使用する必要があります。それ以外の場合、ClassCastException が発生します。

したがって、あなたの場合、 FrameLayout の Layoutparams を設定するには、その親レイアウトの Layout Params を使用する必要があります。レイアウトが次のようになっているとします。

<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);
于 2012-08-30T08:44:36.750 に答える
1

ここClassCastExceptionで違法なことをしていると思いますが、いくつか質問があります。フレーム画像とは何ですか?

フレームが FrameLayout への参照である場合は、使用する必要があります

FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(theBitmap.getWidth(), theBitmap.getHeight());

それが役立つかどうか教えてください。

于 2012-08-30T08:31:30.747 に答える