0
我想根据设备屏幕的大小创建布局。这是我的MainActivity以编程方式在android中设置布局的大小
public class LoginActivity extends Activity {
int width_device;
int height_device;
LinearLayout layout_login_content;
LinearLayout.LayoutParams param;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
// Get screen size
width_device = Utility.getDeviceWidth(this);
height_device = Utility.getDeviceHeight(this);
// Get widget from layout
layout_login_content = (LinearLayout) findViewById(R.id.layout_login_content);
// Set up layout size
param = (LinearLayout.LayoutParams) layout_login_content
.getLayoutParams();
param.width = width_device * 60/100;
param.height = height_device * 60/100;
layout_login_content.setLayoutParams(param);
}
不要担心如何获得屏幕大小。我做到了,它工作。
这是我main_fragment.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/layout_login_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:orientation="vertical"
tools:context="login.LoginActivity" >
</LinearLayout>
这是错误信息
java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams cannot be cast to android.widget.LinearLayout$LayoutParams
我不知道这里发生了什么。我声明LinearLayout.LayoutParams
,从得到参数LinearLayout
in xml。但为什么它不能正确投射?
对不起,我的英语。我希望大家明白我的意思:( 谢谢你这么多
它的工作原理!非常感谢!^ _ ^ – 2014-08-30 01:28:07