Quantcast
Channel: CSDN博客移动开发推荐文章
Viewing all articles
Browse latest Browse all 5930

Android学习笔记之四

$
0
0

基本视图介绍

1.文本 按钮与输入框

文本 按钮 输入框的继承关系

这里写图片描述

TextView:
android:text=”文本”
android:textSize=”20sp”
android:textColor=”#FF0”
android:textStyle=”bold”
android:lines=”3”
android:singleLine=”true”
android:typeface=”monospace” //设置字型。字形有:normal, sans, serif,monospace
android:clickable=””

Button:
属性与TextView基本相似。
不同点:
1. 按钮是自带了背景的控件
2. 按钮是可以点击了

EditText:
android:hint=”请输入QQ”
android:editable=”true”
android:maxLength=”50” 设置最大的字数
android:inputType=”textPassword”

2.是非选择框

ToggleButton:
android:textOn=”开启”
android:textOff=”关闭”
android:checked=”true”

RadioButton(单选框):
RadioGroup 单选组
RadioButton 单选框
一般它们是配合使用的
设置监听器的时候,通过 RadioGroup radioGroup.setOnCheckedChangeListener();
android:checked=”true”

CheckBox:
设置监听器的时候 每个CheckBox都应该设置
android:checked=”false”

附 ToggleButton和CheckBox练习代码:

MainActivity.java

package com.m520it.select;
import java.util.ArrayList;
import java.util.List;

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

public class MainActivity extends Activity{
    private List<String> mChooseData = new ArrayList<String>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        CheckBox aCbx = (CheckBox) findViewById(R.id.cbx_apple);
        CheckBox bCbx = (CheckBox) findViewById(R.id.cbx_banance);
        CheckBox cCbx = (CheckBox) findViewById(R.id.cbx_orange);
        myCheckedChangeListener listener = new myCheckedChangeListener();
        aCbx.setOnCheckedChangeListener(listener);
        bCbx.setOnCheckedChangeListener(listener);
    }
    class myCheckedChangeListener implements OnCheckedChangeListener{
        @Override
        public void onCheckedChanged(CompoundButton buttonView,
                boolean isChecked) {
            int CbxId = buttonView.getId();
            if(CbxId==R.id.cbx_apple){
                if(isChecked){
                    mChooseData.add("苹果");
                }else{
                    if(mChooseData.contains("苹果")){
                        mChooseData.remove("苹果");
                    }
                }
            }else if(CbxId==R.id.cbx_banance){
                if(isChecked){
                    mChooseData.add("香蕉");
                }else{
                    if(mChooseData.contains("香蕉")){
                        mChooseData.remove("香蕉");
                    }
                }
            }else if(CbxId==R.id.cbx_orange){
                if(isChecked){
                    mChooseData.add("橘子");
                }else{
                    if(mChooseData.contains("橘子")){
                        mChooseData.remove("橘子");
                    }
                }
            }
        }
    }
    public void myClick(View v){
        String result = "";
        for (int i = 0; i < mChooseData.size(); i++) {
            result+=mChooseData.get(i);
        }
        Toast.makeText(this, result, Toast.LENGTH_SHORT).show();
    }
}

布局文件activity_main.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" >

    <ToggleButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="true"
        android:textOff="关"
        android:textOn="开" />

    <CheckBox
        android:id="@+id/cbx_apple"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="苹果" />

    <CheckBox
        android:id="@+id/cbx_banance"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="香蕉" />

    <CheckBox
        android:id="@+id/cbx_orange"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="橘子" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="myClick"
        android:text="button" />

</LinearLayout>

附 RadioGroup和RadioButton练习代码:

MainActivity.java

package com.m520it.select;
import android.app.Activity;
import android.os.Bundle;

import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.Toast;

public class MainActivity extends Activity implements OnCheckedChangeListener {

    private RadioButton mARg;
    private RadioButton mBRg;
    private RadioButton mCRg;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.radiogroup);
        radioEvent();
    }

    @Override
    public void onCheckedChanged(RadioGroup group, int checkedId) {
        if (R.id.rg_a == checkedId) {
            Toast.makeText(this, mARg.getText().toString(), Toast.LENGTH_SHORT)
                    .show();
        } else if (R.id.rg_b == checkedId) {
            Toast.makeText(this, mBRg.getText().toString(), Toast.LENGTH_SHORT)
                    .show();
        } else if (R.id.rg_c == checkedId) {
            Toast.makeText(this, mCRg.getText().toString(), Toast.LENGTH_SHORT)
                    .show();
        }
    }

    public void radioEvent() {
        RadioGroup rg = (RadioGroup) findViewById(R.id.rg);
        mARg = (RadioButton) findViewById(R.id.rg_a);
        mBRg = (RadioButton) findViewById(R.id.rg_b);
        mCRg = (RadioButton) findViewById(R.id.rg_c);
        rg.setOnCheckedChangeListener(this);
    }
}

布局文件R.layout.radiogroup:

<?xml version="1.0" encoding="utf-8"?>
<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:id="@+id/rg"
    >

    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="苹果" 
        android:id="@+id/rg_a"
        />

    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="香蕉"
        android:id="@+id/rg_b" 
         />

    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="西瓜" 
         android:id="@+id/rg_c"
        />
</RadioGroup>

3.进度条

没有进度的进度条

  • 大进度条
    style=”?android:attr/progressBarStyleLarge”
  • 普通进度条
    style=”?android:attr/progressBarStyle”
  • 小进度条
    style=”?android:attr/progressBarStyleSmall”

有进度的进度条

style=”?android:attr/progressBarStyleHorizontal”
android:progress=”80”
android:max=”100”

3.可拖动的进度条

SeekBar:可拖动的进度条
android:max=”100”
android:progress=”50”

4.星星进度条

RatingBar:星星进度条 基本单位为半颗星
android:numStars=”4”
android:rating=”3.5”
android:stepSize=”0.5”

练习代码:

<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" >

    <!-- 没有进度的进度条 -->

    <ProgressBar
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <ProgressBar
        style="?android:attr/progressBarStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <ProgressBar
        style="?android:attr/progressBarStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <!-- 有进度的进度条 -->

    <ProgressBar
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:max="100"
        android:progress="80" />

    <!-- 可以拖动的进度条 -->

    <SeekBar
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        android:max="100"
        android:progress="40"
        />
    <!--星星进度条  -->
    <RatingBar 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:numStars="4"
        android:rating="3.5"
        android:stepSize="0.5"
        />
</LinearLayout>

3.图片控件(ImageView)

设置图片源
android:src=”@drawable/ic_launcher”

代码设置图片源
imageView.setImageResource(resId)
imageView.setImageBitmap(bm);
imageView.setImageDrawable(drawable);

设置缩放模式
android:scaleType=”“

这里写图片描述

练习demo:

MainActivity.java

package com.m520it.imageView;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ImageView;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ImageView imageView = (ImageView) findViewById(R.id.iv2);
        /*imageView.setImageResource(resId)
        imageView.setImageBitmap(bm);
        imageView.setImageDrawable(drawable);*/
        imageView.setImageResource(R.drawable.flower);
    }
}

布局文件activity_main.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"
    >

    <ImageView
        android:id="@+id/iv1"
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:scaleType="centerCrop"
        android:src="@drawable/flower" />

    <ImageView 
        android:id="@+id/iv2"
        android:layout_width="150dp"
        android:layout_height="150dp"
        />
</LinearLayout>

4.滑动控件

  1. 手机界面无法容纳更多的控件的时候,就需要滚动界面。
  2. ScrollView :控制上下滑动的效果
  3. HorizontalScrollView: 控制左右滑动的效果
  4. ScrollView与HorizontalScrollView只能容纳一个子控件。
HorizontalScrollView的布局demo
<?xml version="1.0" encoding="utf-8"?>
<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!"
            android:textSize="30sp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!"
            android:textColor="#F00"
            android:textSize="30sp" />

    </LinearLayout>

</HorizontalScrollView>


ScrollView的布局demo
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

         <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hello world"
            android:lines="10"
            android:textSize="30sp" />

        <TextView
            android:text="Hello world"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#F00"
            android:lines="10"
            android:textSize="30sp" />

        <TextView
            android:text="Hello world"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#F00"
            android:lines="10"
            android:textSize="30sp" />

    </LinearLayout>

</ScrollView>

5.日期时间选择器

直接敲一个demo就理解了

MainActivity.java

package com.m520it.dateAndTime;

import java.util.Calendar;
import java.util.Locale;

import android.app.Activity;
import android.os.Bundle;
import android.widget.DatePicker;
import android.widget.DatePicker.OnDateChangedListener;
import android.widget.TimePicker;
import android.widget.TimePicker.OnTimeChangedListener;
import android.widget.Toast;

public class MainActivity extends Activity implements OnDateChangedListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //获取日期控件
        DatePicker datePicker = (DatePicker) findViewById(R.id.datePicker);
        Calendar calendar = Calendar.getInstance(Locale.CHINESE);
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH);
        int day = calendar.get(Calendar.DAY_OF_MONTH);
        //init用来初始化改变后的日期
        //this 日期改变的监听器
        datePicker.init(year, month, day,this);

        //获取时间控件
        TimePicker timePicker = (TimePicker) findViewById(R.id.timePicker);
        //设置24小时
        timePicker.setIs24HourView(true);
        //设置监听器
        timePicker.setOnTimeChangedListener(new OnTimeChangedListener() {
            @Override
            public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
                System.out.println(hourOfDay+"..."+minute);
                Toast.makeText(MainActivity.this,hourOfDay+"..."+minute,Toast.LENGTH_SHORT).show();
            }
        });
    }

    @Override
    public void onDateChanged(DatePicker view, int year, int monthOfYear,
            int dayOfMonth) {
        Toast.makeText(this,"year:"+year+" mothOfYear:"+(monthOfYear+1)+" dayOfMonth:"+dayOfMonth, Toast.LENGTH_SHORT).show();
    }
}

布局文件activity_main.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"
    tools:context="com.m520it.dateAndTime.MainActivity" 
    android:orientation="vertical"
    >

    <DatePicker
        android:id="@+id/datePicker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
      />
    <TimePicker 
        android:id="@+id/timePicker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />
</LinearLayout>
作者:tyhp1 发表于2016/10/27 17:28:39 原文链接
阅读:12 评论:0 查看评论

Viewing all articles
Browse latest Browse all 5930

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>