模拟器改为竖屏:
ctrl+fn+f12
*******************************************************************************************
android:layout_width="match_parent"
android:layout_height="wrap_content"
match_parent:使它长宽布局与屏幕一致
fill_parent:与match_parent类似,能兼容更低版本
wrap_content:大小刚刚好
***********************************************************************************************
使竖屏或横屏
AndroidManifest.xml下activity标签中添加
android:screenOrientation="portrait"
android:configChanges="keyboardHidden|orientation"
portrait为纵向,landscape为横向
***********************************************************************************************
Android虚拟机
Device: 5.1 WVGA (480*800:mdpi)
skin: WVGA 800
//两者最好配套
**********************************************************************************************
若提升版本过低,在AndroidManifest.xml中修改
android:minSdkVersion="15"
**********************************************************************************************
AndroidManifest.xml中<intent-filter>放到哪个<activity>中就启动哪个界面
**********************************************************************************************
控件对齐:
android:layout_gravity="fill_vertical"
//可使控件水平布满整个屏幕
layout_gravity, 该属性用于设置控件相对于容器的对齐方式,可选项有:top、bottom、left、right、center_vertical、fill_vertical 、 center、fill等等。
*********************************************************************************************
控件内容(如文字)对齐:
android:gravity="right"
//可使文字向右对齐
*********************************************************************************************
//获取屏幕宽和高
DisplayMetrics dm = getResources().getDisplayMetrics();
int width = dm.widthPixels;
int height= dm.heightPixels;
***********************************************************************************************
src 中 .java文件部分代码:
public class MainActivity extends Activity {
//1
GridLayout gridLayout; //定义布局
String[] chars=new String[]
{
"7","8","9","/",
"4","5","6","*",
"1","2","3","-",
".","0","=","+"
};
//1
/**
* The {@link android.support.v4.view.PagerAdapter} that will provide
* fragments for each of the sections. We use a {@link FragmentPagerAdapter}
* derivative, which will keep every loaded fragment in memory. If this
* becomes too memory intensive, it may be best to switch to a
* {@link android.support.v13.app.FragmentStatePagerAdapter}.
*/
SectionsPagerAdapter mSectionsPagerAdapter;
/**
* The {@link ViewPager} that will host the section contents.
*/
ViewPager mViewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.calculator);
//2
//获取屏幕宽和高
DisplayMetrics dm = getResources().getDisplayMetrics();
int width = dm.widthPixels;
int height= dm.heightPixels;
gridLayout=(GridLayout)findViewById(R.id.root);
for (int i = 0; i < chars.length; i++) {
Button bn=new Button(this); //定义按钮
bn.setText(chars[i]);
bn.setTextSize(30);
bn.setWidth(width/3); //设置按钮宽度
bn.setPadding(5, 35, 5, 35);
GridLayout.Spec rowSpec=GridLayout.spec(i/4+2);
GridLayout.Spec columnSpec=GridLayout.spec(i%4);
GridLayout.LayoutParams params=new GridLayout.LayoutParams(rowSpec, columnSpec); //设置布局参数
params.setGravity(Gravity.FILL); //设置控件内文字对齐方式
gridLayout.addView(bn, params); //把按钮添加到布局中
}
//2
// Create the adapter that will return a fragment for each of the three
// // primary sections of the activity.
// mSectionsPagerAdapter = new SectionsPagerAdapter(getFragmentManager());
//
// // Set up the ViewPager with the sections adapter.
// mViewPager = (ViewPager) findViewById(R.id.pager);
// mViewPager.setAdapter(mSectionsPagerAdapter);
}