我正在做一些非常基本的事情,例如在屏幕上添加按钮。该代码在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>
请告诉我我做错了什么。
答案 0 :(得分:0)
您的代码并不是很清楚,但我认为您这样做错了:
mainLayout.addView(titleView);
我想你想写textLayout.addView(titleView);
答案 1 :(得分:0)
我遇到了完全相同的问题,经过几个小时尝试不同的事情,这是唯一对我有用的事情:
在使用ImageView之前尝试此操作(您可能还需要在清单中将minSDKVersion设置为至少11个。)
myImageView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
我在this主题
获得了来自用户的解决方案,dicenice