0

画面にボタンを追加するなど、非常に基本的なことをしています。このコードは Andorid 2.3 では問題なく動作しますが、Android 4.1.1 では動作しません。

RelativeLayout mainLayout = new RelativeLayout(this);
mainLayout.setLayoutParams(new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));


ImageView titleView = new ImageView(this);
Bitmap _bitmap = returnScaledBitmap(R.drawable.headertext, display.getWidth()*50/100,display.getHeight()*15/100);
titleView.setImageBitmap(_bitmap);
titleView.setId(R.drawable.headertext);
RelativeLayout.LayoutParams textLayout = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT);
textLayout.addRule(RelativeLayout.ALIGN_PARENT_TOP);
titleView.setPadding(display.getWidth()*35/100, display.getWidth()*1/100,display.getWidth()*1/100,display.getWidth()*1/100);
titleView.setLayoutParams(textLayout);

mainLayout.addView(titleView);
setContentView(mainLayout);

このコードは、2.3.3 である HTC EVO 4G で正常に動作しています。ただし、4.1.1 を実行している Samsung Galaxy S3 にはありません。これが私のマニフェストです

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="org.myorg"
    android:versionCode="6"
    android:versionName="1.0"
    android:icon="@drawable/icon"
    android:installLocation="preferExternal"
     >

    <uses-sdk android:minSdkVersion="10" />
    <application
        android:icon="@drawable/icon"
        android:label="@string/app_name" android:logo="@drawable/icon" android:debuggable="false">
        <activity
            android:screenOrientation="landscape"
            android:label="@string/app_name"
            android:name=".splash" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".homepage"
            android:screenOrientation="landscape">
        </activity>
    </application>
<uses-permission android:name="android.permission.VIBRATE"></uses-permission>
</manifest>

私が間違っていることを教えてください。

4

2 に答える 2

0

私はまったく同じ問題を抱えていて、何時間も別のことを試した後、これが私にとって唯一うまくいったことでした:

ImageView を使用する前にこれを試してください (マニフェストで minSDKVersion を少なくとも 11 に設定する必要がある場合もあります)。

myImageView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

このスレッドの dicenice というユーザーから解決策を得ました

于 2013-02-18T01:16:33.870 に答える
0

あなたのコードはあまり明確ではありませんが、これは間違っている mainLayout.addView(titleView);と思います:textLayout.addView(titleView);

于 2013-02-16T23:12:35.500 に答える