android基础

1.两个activity程序分析:
在/activity/AndroidManifest.xml文件里,在定义一个activity:
<!-- 再定义一个activity -->
<activity android:name="activity2"></activity>
然后分别用两个java程序代码文件来实现这两个activity,其中activity2.java的实现如下:
public void onClick(View v)
{
 Intent intent=new Intent();
 intent.setClass(activity2.this,ActivityActivity.class);       
 startActivity(intent);
 activity2.this.finish();
}
前面一个是一个Activity后面一个是要跳转的Activity
基本步骤就是
Intent intent = new Intent();//新建一个activity
intent.setClass(TestActivity.this, login.class);//从本类的activity跳转到目标activity。
startActivity(intent);//执行目标activity
TestActivity.this.finish();//退出第一个activity
注:还要在androidMainfest.xml注册一下目标的activity
还要在
    src/空间里新建一个目标的类
    res/layout/目录下新建一个对应的布局文件xml。
2.button事件处理
mybutton=(Button)findViewById(R.id.mybutton);
mybutton.setOnClickListener(new Button.OnClickListener()
{
 public void onClick(View v)
 {          
 }
});
3.color
(1)新建/color/res/values/color.xml文件,加入以下内容:
<drawable name="white">#ffffffff</drawable>
java代码实现:
//第一种是获取资源,然后设置背景颜色
Resources resources = getBaseContext().getResources();
Drawable HippoDrawable =resources.getDrawable(R.drawable.white);
mytext0.setBackgroundDrawable(HippoDrawable);
//也可以直接设置颜色
mytext1=(TextView)findViewById(R.id.test1);
mytext1.setTextColor(Color.MAGENTA);
(2)使用style
fromAlpha 属性为动画起始时透明度; toAlpha 属性为动画结束时透明度
首先新建style.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="style0">
        <item name="android:textSize">18sp</item>
        <item name="android:textColor">#ec9237</item>
    </style>
    <style name="style1">
        <item name="android:textSize">14sp</item>
        <item name="android:textColor">#ff7f7c</item>
        <item name="android:fromAlpha">0.0</item>
        <item name="android:toAlpha">0.0</item>
    </style>
</resources>
main.xml文件中使用:
    <TextView
        style="@style/style0"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/str0"
        android:gravity="center_vertical|center_horizontal" />
    <TextView
        style="@style/style1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/str1"
        android:gravity="center_vertical|center_horizontal" />
android:gravity:
这个是针对控件里的元素来说的,用来控制元素在该控件里的显示位置。例如,在一个Button按钮控件中设置如下两个属性,
android:gravity="left"和android:text="提交",这时Button上的文字“提交”将会位于Button的左部。
android:layout_gravity:
这个是针对控件本身而言,用来控制该控件在包含该控件的父控件中的位置。同样,当我们在Button按钮控件中设置android:
layout_gravity="left"属性时,表示该Button按钮将位于界面的左部。
当我们采用LinearLayout布局时,有以下特殊情况需要我们注意:
(1)当 android:orientation="vertical"  时, android:layout_gravity只有水平方向的设置才起作用,垂直方向的设置不起作用。即:left,right,center_horizontal 是生效的。
(2)当 android:orientation="horizontal" 时, android:layout_gravity只有垂直方向的设置才起作用,水平方向的设置不起作用。即:top,bottom,center_vertical 是生效的。
4.radiobutton的使用
首先在layout文件中设置好界面:
   <RadioGroup
     android:id="@+id/radiogroup1"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:orientation="vertical"
     android:layout_x="3px"
    >
     <RadioButton
      android:id="@+id/radiobutton1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="@string/radiobutton1"
     />
    </RadioGroup>
然后再java代码中写入以下内容:
       radiogroup=(RadioGroup)findViewById(R.id.radiogroup1);
       radio1=(RadioButton)findViewById(R.id.radiobutton1);
       radio2=(RadioButton)findViewById(R.id.radiobutton2);
       radiogroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
    public void onCheckedChanged(RadioGroup group, int checkedId) {
     if(checkedId==radio2.getId())
      DisplayToast(radio2.getText());
     if(checkedId==radio1.getId())
      DisplayToast(radio1.getText());
    }
   });
     public void DisplayToast(CharSequence charSequence)
     {
      Toast toast=Toast.makeText(this, charSequence, Toast.LENGTH_LONG);
      toast.setGravity(Gravity.TOP,0,220);
      toast.show();
     }
5.统计屏幕分辨率
为了获取 DisplayMetrics 成员,首先初始化一个对象如下:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics;
注:构造函数 DisplayMetrics 不需要传递任何参数;调用 getWindowManager() 之后,会取得 现有 Activity 的 Handle ,getDefaultDisplay()
方法将取得的宽高维度存放于 DisplayMetrics 对象中,而取得的宽高维度是以像素为单位(Pixel) ,“像素”所指的是“绝对像素” 而非“相对像素”。              
String strOpt ="手机屏幕分辨率为:"+dm.widthPixels+"x"+dm.heightPixels;
myTextView =(TextView)findViewById(R.id.myText);                      
myTextView.setText(strOpt);
6.布局文件的切换
首先写两个布局文件,当按下其中的按钮时,切换布局文件
        button0=(Button)findViewById(R.id.button0);
        button0.setOnClickListener(new Button.OnClickListener(){
         public void onClick(View v)
         {
          jmptolayout2();          
         }
        });
    }
        public void jmptolayout2()
        {
        //切换布局界面
         setContentView(R.layout.mylayout);
         button1=(Button)findViewById(R.id.button1);
         button1.setOnClickListener(new Button.OnClickListener(){
          public void onClick(View v)
          {
           jmptolayout1();
          }
         });         
        }
        public void jmptolayout1()
        {
         setContentView(R.layout.main);
         button0=(Button)findViewById(R.id.button0);
          button0.setOnClickListener(new Button.OnClickListener(){
              public void onClick(View v)
              {
               jmptolayout2();          
              }
             });
        }

7.@Override的使用

@Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处:
1、可以当注释用,方便阅读;
2、编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错。比如你如果没写@Override而你下面的方法名又写错了,这时你的编译器是可以通过的
(它以为这个方法是你的子类中自己增加的方法)。
 
举例:在重写父类的onCreate时,在方法前面加上@Override 系统可以帮你检查方法的正确性。
public void onCreate(Bundle savedInstanceState)
{…….}
这种写法是正确的,如果你写成:
public void oncreate(Bundle savedInstanceState)
{…….}
这样编译器回报如下错误——The method oncreate(Bundle) of type HelloWorld must override or implement a supertype method,以确保你正确重写onCreate方法(因为
oncreate应该为onCreate)。而如果你不加@Override,则编译器将不会检测出错误,而是会认为你新定义了一个方法oncreate。                                         

你可能感兴趣的:(android基础)