View(视图)2

图片视图:
1.ImageView
2.src 图片来源
3.scaleType 显示属性:
保持比例:适应高宽、居中
center
保持原图的大小,显示在ImageView的中心。当原图的size大于ImageView的size,超过部分裁剪处理
centerCrop
以填满整个ImageView为目的,将原图的中心对准ImageView的中心,等比例放大原图直到填满ImageView为止(指的是ImageView的宽和高都要填满),原图超过ImageView的部分作裁剪处理
centerInside
图片的内容完整居中显示,通过按比例缩小原图的size宽(高)等于或小于ImageView的宽(高)。如果原图的size本身就小于ImageView的size,则原图的size不作任何处理,居中显示在ImageView
居左上
matrix
不改变原图的大小,从ImageView的左上角开始绘制原图,原图超过ImageView的不分作裁剪处理
只适应高度
fitCenter
把原图按比例扩大或缩小到ImageView的ImageView的高度,居中显示
fitEnd
把原图按比例扩大(缩小)到ImageView的高度,显示在ImageView的右部分位置
fitStart
把原图按比例扩大(缩小)到ImageView的高度,显示在ImageView的左部分位置
不保持比例
fitXY
把原图按照指定的大小在View中显示,拉伸显示图片,不保持原比例,填满ImageView
alphe 透明度
设置值为0~1
<=0,全透明
>=1,不透明

复选按钮:
CheckBox
checked 是否被选中
监听器
CompoundButton.OnCheckedChangeListener
onCheckedChanged(CompoundButton buttonView, boolean isChecked)
buttonView  事件源,被点击的CheckBox
isChecked 选中状态

单选按钮:
单选组 RadioGroup
单选按钮 RadioButton
text 显示文字
checked 选中状态
true/false
必须要添加id
事件监听
OnCheckedChangeListener选中状态改变
onCheckedChanged(RadioGroup group, int checkedId)
int checkedId被选中的RadioButton的id
子主题 3

开关按钮:
ToggleButton
textOn 开状态下的文本
textOff 关状态下的文本
不支持text属性
Switch
支持text属性
不支持textOn,textOff
监听器
CompoundButton.OnCheckedChangeListener
onCheckedChanged(CompoundButton buttonView, boolean isChecked)
buttonView 事件源,被点击的CheckBox
isChecked 选中状态

<?xml version="1.0" encoding="utf-8"?>
<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: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="com.hanqi.testapp2.TestActivity1"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/xiao1" />
    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/xiao2"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/xiao1"
        android:text="普通按钮"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    <ImageView
        android:layout_width="110dp"
        android:layout_height="110dp"
        android:src="@drawable/xiao3"
        android:alpha="1"
        android:background="#f00"
        android:scaleType="center"
        />
    <ImageView
        android:layout_width="110dp"
        android:layout_height="110dp"
        android:src="@drawable/xiao3"
        android:alpha="1"
        android:background="#f00"
        android:scaleType="centerCrop"
        />
        <ImageView
            android:layout_width="110dp"
            android:layout_height="110dp"
            android:src="@drawable/xiao3"
            android:alpha="1"
            android:background="#f00"
            android:scaleType="centerInside"
            />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <ImageView
            android:layout_width="110dp"
            android:layout_height="110dp"
            android:src="@drawable/xiao3"
            android:alpha="1"
            android:background="#f00"
            android:scaleType="matrix"
            />
        <ImageView
            android:layout_width="110dp"
            android:layout_height="110dp"
            android:src="@drawable/xiao3"
            android:alpha="1"
            android:background="#f00"
            android:scaleType="fitCenter"
            />
        <ImageView
            android:layout_width="110dp"
            android:layout_height="110dp"
            android:src="@drawable/xiao3"
            android:alpha="1"
            android:background="#f00"
            android:scaleType="fitStart"
            />
    </LinearLayout>

    <RadioGroup
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/rg_1"
        android:orientation="horizontal">

        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="男"
            android:id="@+id/nan"/>
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="女"
            android:id="@+id/nv"
            android:checked="true"/>

    </RadioGroup>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="范冰冰"
        android:id="@+id/cb_1"
        android:checked="true"/>
    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="章子怡"
        android:id="@+id/cb_2"
        android:checked="true"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    <ToggleButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textOn="开"
        android:textOff="关"
        android:id="@+id/tb_1"/>

    <Switch
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textOn="打开"
        android:textOff="关闭"
        android:text="开关"
        android:id="@+id/sw_1"/>
    </LinearLayout>

</LinearLayout>

package com.hanqi.testapp2;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Switch;
import android.widget.Toast;
import android.widget.ToggleButton;

public class TestActivity1 extends AppCompatActivity {

    RadioGroup rg_1;
    RadioButton nan;
    RadioButton nv;

    CheckBox cb_1;
    CheckBox cb_2;

    ToggleButton tb_1;
    Switch sw_1;

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

        rg_1=(RadioGroup)findViewById(R.id.rg_1);
        nan=(RadioButton)findViewById(R.id.nan);
        nv=(RadioButton)findViewById(R.id.nv);

        cb_1=(CheckBox)findViewById(R.id.cb_1);
        cb_2=(CheckBox)findViewById(R.id.cb_2);

        tb_1=(ToggleButton)findViewById(R.id.tb_1);
        sw_1=(Switch)findViewById(R.id.sw_1);

        tb_1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

                Toast.makeText(TestActivity1.this, "开关状态"+(isChecked?"开":"关"), Toast.LENGTH_SHORT).show();
            }
        });

        sw_1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

                Toast.makeText(TestActivity1.this, "开关状态"+(isChecked?"开":"关"), Toast.LENGTH_SHORT).show();
            }
        });

        //监听器的实例
        CB_OnCheckedChangeListener cb1=new CB_OnCheckedChangeListener();

        //监听器绑定
        cb_1.setOnCheckedChangeListener(cb1);
        cb_2.setOnCheckedChangeListener(cb1);

        rg_1.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            //被选中的RadioButton的id
            public void onCheckedChanged(RadioGroup group, int checkedId) {

                //提示选中的内容
                //判断谁被选中
                if(checkedId==nan.getId())
                {
                    Toast.makeText(TestActivity1.this, "选中的是="+nan.getText(), Toast.LENGTH_SHORT).show();
                }
                else if (checkedId==nv.getId())
                {
                    Toast.makeText(TestActivity1.this, "选中的是="+nv.getText(), Toast.LENGTH_SHORT).show();
                }

            }
        });
    }

    //公共的复选按钮的监听器
    class CB_OnCheckedChangeListener implements CompoundButton.OnCheckedChangeListener
    {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

            CheckBox cb=(CheckBox)buttonView;

            String str=cb.getText().toString();

            if(isChecked)
            {
                Toast.makeText(TestActivity1.this,str+ "被选中", Toast.LENGTH_SHORT).show();
            }
            else
            {
                Toast.makeText(TestActivity1.this,str+ "被取消选中", Toast.LENGTH_SHORT).show();
            }
        }
    }
}
时间: 2024-10-07 16:16:09

View(视图)2的相关文章

Android 自定义View视图

创建全新的视图将满足我们独特的UI需求. 本文介绍在指南针开发中会用到的罗盘的界面UI,通过继承View类实现的自定义视图,以此来深刻了解自定义视图. 实现效果图: 源代码: 布局文件activity_main(其中CompassView继承View类): <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.

DNS主从服务,子域授权,view视图,日志系统,压力测试rsync配置

DNS主从服务,子域授权,view视图,日志系统,压力测试 DNS性能测试工具queryperfDNS查询过程: DNS主从建立: 环境: 主服务器:10.140.165.93 从服务器:10.140.165.169 关闭防火墙,关闭selinux. 主服务器建立: [[email protected] ~]# yum -y install bind-util bind #安装bind服务 [[email protected] ~]# vim /etc/named.conf #编辑主配置文件 o

Atitit.code&#160;base&#160;view&#160;视图的实现原理

Atitit.code base view 视图的实现原理 1. 视图的执行算法:1 2. 不可更新的视图:1 3. 关于视图的可插入性:insert2 4. 视图定义3 5. 调用3 1. 视图的执行算法: 存在两种执行算法: 1.  Merge:合并的执行方式,每当执行的时候,先将我们视图的sql语句与外部查询视图的sql语句,混合在一起,最终执行: 2.  Temptable:临时表模式,每当查询的时候,将视图所使用的select语句生成一个结果的临时表,再在当前的临时表内进行查询. 指的

linux下DNS主从复制,view视图,转发,子域授权

我们知道相同网段内各网络设备之间是基于mac通信,而跨网络的不同主机之间是基于IP地址通信.随着世界主机数量爆炸式的增长,对于记住数目众多IP和想访问未知对方IP的主机成为一个痛点.通过基于人们熟知的文字访问主机应运而生. DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析). DNS是一项

自定义View视图

自定义View视图文件查找逻辑 之前MVC5和之前的版本中,我们要想对View文件的路径进行控制的话,则必须要对IViewEngine接口的FindPartialView或FindView方法进行重写,所有的视图引擎都继承于该IViewEngine接口,比如默认的RazorViewEngine.但新版本MVC6中,对视图文件的路径方式却不太一样了,目前有两种方式,一种是通过RazorViewEngine,另外一种是通过新特性IViewLocationExpander接口. 通过RazorView

ASP.Net MVC View(视图)

View视图职责是向用户提供界面.负责根据提供的模型数据,生成准备提供给用户的格式界面. 支持多种视图引擎(Razor和ASPX视图引擎是官方默认给出的,其实还支持其它N种视图引擎,甚至你自己都可以写一套视图引擎) View和Action之间数据传递(前后台数据传递) 弱类型 ViewData[""] 动态型 ViewBag //dynamic 动态类型Model              后台:return View(data); //存入 ViewData.Model       

MVC中View视图调用Controllers里返回的值

在MVC中前台页面调用控制器里面的方法跟ASP中<% %>.<%= %>是有区别的,在MVC Razor引擎中,如果需要输出值,先声明一个变量去接收,然后用@输出就可以了. GetDictionaryNameByID()方法返回的是一个string类型的, 控制器的路径地址,这个地址在页面调用里面的方法会用到 前台View调用,注意:MVC里面显示输出得先声明一个变量去接收,然后在输出 最终显示效果如下图: MVC中View视图调用Controllers里返回的值

ThinkPHP框架视图详细介绍 View 视图--模板(九)

原文:ThinkPHP框架视图详细介绍 View 视图--模板(九) 视图也是ThinkPHP使用的核心部分: 一.模板的使用 a.规则 模板文件夹下[TPL]/[分组文件夹/][模板主题文件夹/]和模块名同名的文件夹[Index]/和方法名同名的文件[index].html(.tpl) -->更换模板文件的后缀名(修改配置文件) 'TMPL_TEMPLATE_SUFFIX'=>'.tpl',//更改模板文件后缀名,默认是html b.修改模板文件目录层次 Tpl/Index/index.ht

DNS的view视图功能

在一个庞大的网络中,由于网络的复杂性等原因造成的,我们访问某些互联网资源时,速度会非常慢,而这些资源的提供商,比如购物网站,他们为了让客户访问速度提升,于是会将多个业务服务器会放在不同的网络中,而我们期望访问到离我们最近的服务器,以达到最快的速度访问,这个时候我们的DNS服务器解析的功能就要能指向到不同网络中的对应的固定的服务器,这种功能的实现就需要用到DNS的view功能,这个时候DNS服务器起到的是分网的效果. DNS的View功能,需要在DNS服务配置文件中来定义,在视图中需要最先需要定义

解读ASP.NET 5 &amp; MVC6系列(16):自定义View视图文件查找逻辑

原文:解读ASP.NET 5 & MVC6系列(16):自定义View视图文件查找逻辑 之前MVC5和之前的版本中,我们要想对View文件的路径进行控制的话,则必须要对IViewEngine接口的FindPartialView或FindView方法进行重写,所有的视图引擎都继承于该IViewEngine接口,比如默认的RazorViewEngine.但新版本MVC6中,对视图文件的路径方式却不太一样了,目前有两种方式,一种是通过RazorViewEngine,另外一种是通过新特性IViewLoc