代码无法在Android 4.1.1中运行

时间:2013-02-16 23:04:33

标签: android android-layout

我正在做一些非常基本的事情,例如在屏幕上添加按钮。该代码在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);

此代码在HTC EVO 4G上运行良好,即2.3.3。但不是运行4.1.1的三星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>

请告诉我我做错了什么。

2 个答案:

答案 0 :(得分:0)

您的代码并不是很清楚,但我认为您这样做错了: mainLayout.addView(titleView);我想你想写textLayout.addView(titleView);

答案 1 :(得分:0)

我遇到了完全相同的问题,经过几个小时尝试不同的事情,这是唯一对我有用的事情:

在使用ImageView之前尝试此操作(您可能还需要在清单中将minSDKVersion设置为至少11个。)

myImageView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

我在this主题

获得了来自用户的解决方案,dicenice