Android开发入门之基本界面组件

转载请注明出处:http://write.blog.csdn.net/postedit/52387970

一、TextView和EditText

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >
           <TextView
       	 	android:id="@+id/textView1"
        	android:layout_width="fill_parent"
        	android:layout_height="50dp"
        	android:singleLine="true"
        	android:ellipsize="middle"
        	android:text="我会开发android我会开发android我会开发android我会开发android" />
           <TextView
        	android:id="@+id/textView2"
        	android:layout_width="fill_parent"
        	android:layout_height="50dp"
        	android:shadowDx="15"
        	android:shadowDy="20"
        	android:shadowRadius="30"
        	android:textSize="20pt"
        	android:shadowColor="#0000ff"
       		android:textColor="#dd0000"
        	android:text="我是阴影" />
           <TextView
        	android:id="@+id/textView3"
        	android:layout_width="fill_parent"
        	android:layout_height="50dp"
        	android:password="true"
        	android:text="@string/hello_world" />
           <TextView
        	android:id="@+id/textView4"
        	android:layout_width="fill_parent"
        	android:layout_height="50dp"
        	android:drawableLeft="@drawable/ic_launcher"
        	android:text="@string/hello_world" />
           <EditText
                android:id="@+id/editText1"
                android:layout_width="fill_parent"
        	android:layout_height="50dp"
        	android:hint="请输入账号"
        	android:cursorVisible="true"
        	android:textColorHint="#00dd00"/>
            <EditText
                android:id="@+id/editText1"
                android:layout_width="fill_parent"
        	android:layout_height="200dp"
        	android:background="@null"
        	android:hint="请输入给我们的建议"/>
</LinearLayout>

            运行效果:

                          

二、Button和ImageButton

布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="15pt"
        android:text="按钮测试" />
    <Button
        android:id="@+id/button1"
        android:layout_width="fill_parent"
        android:layout_height="40dp"
        android:text="普通按钮"
        android:shadowColor="#000000"
        android:shadowDx="15"
        android:shadowDy="20"
        android:background="#aaaaff"
        />
    <ImageButton
        android:id="@+id/imageButton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/ic_launcher"
        />
    <ImageButton
        android:id="@+id/imageButton2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/imgbutton_selector" />
</LinearLayout>
MainActivity.java文件:

package com.example.button;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {
	private Button btn = null;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		//通过findViewById取得按钮实例
		btn = (Button)findViewById(R.id.button1);
		//通过匿名内部类给按钮设置监听器
		btn.setOnClickListener(new OnClickListener() {	
			@Override
			public void onClick(View v) {
				  Toast.makeText(MainActivity.this, "你点击了普通按钮", Toast.LENGTH_LONG).show();
			}
		});
	}
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}
}
       运行效果:

                      

三、 RadioButton、RadioGroup和CheckBox

   xml布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="12pt"
        android:text="单选复选测试" />
    <RadioGroup 
        android:id="@+id/rg"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
            <RadioButton 
                android:layout_width="50dp"
                android:layout_height="50dp" 
                android:text="男"/>
            <RadioButton 
                android:layout_width="50dp"
                android:layout_height="50dp" 
                android:text="女"/>
   </RadioGroup>
                <CheckBox 
                    android:id="@+id/cbmale"
                   android:layout_width="50dp"
                   android:layout_height="50dp"
                   android:text="学生" />
                <CheckBox 
                   android:id="@+id/cbfemale"
                   android:layout_width="50dp"
                   android:layout_height="50dp"
                   android:text="20岁" />
</LinearLayout>
    MainActivity.java文件:

package com.example.choosetest;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.Toast;

public class MainActivity extends Activity {
	private CheckBox checkBoxMale;
	private CheckBox checkBoxFemale;
	private RadioGroup radioGroup;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		checkBoxMale = (CheckBox)findViewById(R.id.cbmale);
		checkBoxFemale = (CheckBox)findViewById(R.id.cbfemale);
		radioGroup = (RadioGroup)findViewById(R.id.rg);
		//设置匿名内部类监听器
		checkBoxMale.setOnCheckedChangeListener(new MyCheckListener());
		checkBoxFemale.setOnCheckedChangeListener(new MyCheckListener());
		//设置匿名内部类监听器(android.widget.RadioGroup.setOnCheckedChangeListener)
		radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
			@Override
			public void onCheckedChanged(RadioGroup group, int checkedId) {
				//((RadioButton)findViewById(group.getCheckedRadioButtonId())).getText()这句代码虽然可读性差,但却道出了真谛
				Toast.makeText(MainActivity.this,"你选中了"+((RadioButton)findViewById(group.getCheckedRadioButtonId())).getText(),Toast.LENGTH_SHORT).show();
			}
		});
	}
	  //实现android.widget.CompoundButton.OnCheckedChangeListener接口,请注意此接口与RadioButton那个接口名字相同,但所在的包不同
class MyCheckListener implements android.widget.CompoundButton.OnCheckedChangeListener{

	@Override
	public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
		if(isChecked){
			//注意一定要调用show()方法,否则你会很郁闷
	        Toast.makeText(MainActivity.this, "你选择了"+buttonView.getText(), Toast.LENGTH_SHORT).show() ;	
		}
		else{
			Toast.makeText(MainActivity.this, "你取消选择了"+buttonView.getText(), Toast.LENGTH_SHORT).show();
		}
	}
}
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}
}

           运行效果:

                            

四、ToggleButton

xml文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="状态按钮测试"
        android:textSize="12pt" />
    <ToggleButton
        android:id="@+id/tButton"
        android:layout_width="100dp"
        android:layout_height="40dp"
        android:textOn="注册界面"
        android:textOff="登录界面"
        android:checked="true"
        />
    <RelativeLayout 
        android:id="@+id/login"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        >
        <TextView 
            android:textSize="20pt"
            android:text="我是登录界面"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />
    </RelativeLayout>
    <RelativeLayout android:id="@+id/register"
        android:layout_width="wrap_content"
        android:visibility="invisible"
        android:layout_height="wrap_content">
        <TextView 
            android:textSize="20pt"
            android:text="我是注册界面"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />     
    </RelativeLayout>
</LinearLayout>
    MainActivity.java

package com.example.togglebutton;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.RelativeLayout;
import android.widget.ToggleButton;

public class MainActivity extends Activity {
     private ToggleButton tButton;
     private RelativeLayout login;
     private RelativeLayout register;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		//实例化
		tButton = (ToggleButton)findViewById(R.id.tButton);
		login = (RelativeLayout)findViewById(R.id.login);
		register = (RelativeLayout )findViewById(R.id.register);
		tButton.setOnCheckedChangeListener(new OnCheckedChangeListener() {
			@Override
			public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                      if(isChecked){
                    	       //设置登录布局隐藏,注册布局显示,
                    	       //需注意INVISIBLE和GONE的区别,隐藏之后是否留下背景
                               login.setVisibility(View.VISIBLE);
                               register.setVisibility(View.INVISIBLE); 
                      }
                      else{
                    	       login.setVisibility(View.INVISIBLE);
                               register.setVisibility(View.VISIBLE);  
                      }
			}
		});
	}
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}
}

      运行效果:

                      

五、AnalogClock 和 DigitalClock

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="12pt"
        android:text="Android中的时间" />
    <AnalogClock
        android:layout_width="120dp"
        android:layout_height="120dp"
        android:layout_alignLeft="@+id/textView1"
        android:layout_below="@+id/textView1"
        android:layout_marginLeft="84dp"
        android:layout_marginTop="34dp" />
    <DigitalClock
        android:layout_width="120dp"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/textView1"
        android:layout_centerVertical="true" />
</RelativeLayout>
          效果图:

                     

六、ImageView

xml文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >
    <ImageView 
        android:id="@+id/image"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#ffffff"
        android:layout_marginBottom="60dp" />
    <Button
        android:id="@+id/low"
        android:layout_width="wrap_content"
        android:layout_height="60dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:text="low  alpha" />
    <Button
        android:id="@+id/high"
        android:layout_width="wrap_content"
        android:layout_height="60dp"
        android:layout_alignParentBottom="true"
        android:text="high  alpha" 
        android:layout_toRightOf="@+id/low"/>
    <Button
        android:id="@+id/nextImage"
        android:layout_width="wrap_content"
        android:layout_height="60dp"
        android:layout_toRightOf="@+id/high"
        android:text="next image" 
        android:layout_alignParentBottom="true"/>
</RelativeLayout>
MainActivity.java文件:

package com.example.imageviewtest;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;

public class MainActivity extends Activity {
     
	private ImageView imageView;
	private Button lowButton;
	private Button highButton;
	private Button nextImageButton;
	//图片资源数组
	private int[] images = new int[]{
			R.drawable.image1,
			R.drawable.image2,
			R.drawable.image3,
			R.drawable.image4,
	};
	//初始显示图片
	private int currentImage = 2;
	//初始图片透明度
	private int alpha = 255;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		imageView = (ImageView)findViewById(R.id.image);
		lowButton = (Button)findViewById(R.id.low);
		highButton = (Button)findViewById(R.id.high);
		nextImageButton = (Button)findViewById(R.id.nextImage);
		imageView.setImageResource(images[currentImage]);
		//为显示下一张图片按钮设置内部匿名监听器
		nextImageButton.setOnClickListener(new OnClickListener() {	
			@Override
			public void onClick(View v) {
                     if(++currentImage > 3){
                    	 currentImage = 0;
                     }
                     imageView.setImageResource(images[currentImage]);
			}
		});
		highButton.setOnClickListener(new MyListener());
		lowButton.setOnClickListener(new MyListener());
	}
//降低或增加图片透明度按钮的监听器
class MyListener implements OnClickListener{
	@Override
	public void onClick(View v) {
		      if(v == lowButton){
		            alpha-=50;
		      }
		     if(v == highButton){
		    	    alpha+=50;
		     }
		     if(alpha<=0){
		     alpha = 0;
		     }
		     if(alpha>=255){
			     alpha = 255;
			     }
		     imageView.setImageAlpha(alpha);
		     System.out.println(alpha);
	}
}
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}
}

        效果图:

                   




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值