上次我们介绍了两种常用的UI控件,分别是EditText和RadioButton,不清楚用法的可以查看我的上一次博客,链接为https://blog.csdn.net/chenpeixing361/article/details/89054256。这一次我们我们继续介绍两种常用的控件,分别是CheckBox和ImageView。

CheckBox

checkbox也就是复选框的意思,我们选择一项或者多项标签。这里我们主要讲解以下内容:①常用属性;②自定义样式;③监听事件。我们紧接着之前的博客内容进行拓展,在activity_main.xml中添加两个按钮,代码如下:

  

我们这里把介绍ImageView的按钮也顺便添加进去,然后我们新建两个Activity类,类名分别是CheckBoxActivity和ImageViewActivity。我们在MainActivity中,设置两个界面跳转事件,代码如下:

 Button btnCheckBox = findViewById(R.id.btn_checkbox);        btnCheckBox.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                //跳转到CheckBox界面                Intent intent = new Intent(MainActivity.this,CheckBoxActivity.class);                startActivity(intent);            }        });        Button btnImageView = findViewById(R.id.btn_image_view);        btnImageView.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                //跳转到ImageView界面                Intent intent = new Intent(MainActivity.this,ImageViewActivity.class);                startActivity(intent);            }        });

我们在创建CheckBoxActivity类时,会附带创建一个activity_check_box.xml文件,该文件即代表该界面的布局,代码如下:

<?xml version="1.0" encoding="utf-8"?>                                                                

CheckBoxActivity代码主要添加了监听事件,代码如下:

package com.autumn;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.CheckBox;import android.widget.CompoundButton;import android.widget.Toast;public class CheckBoxActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_check_box);        //给checkbox设置点击事件        CheckBox checkBox = findViewById(R.id.cb_5);        checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {            @Override            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {                Toast.makeText(CheckBoxActivity.this,isChecked?"cb5被选中":"cb5未被选中",Toast.LENGTH_SHORT).show();            }        });        CheckBox checkBox1 = findViewById(R.id.cb_6);        checkBox1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {            @Override            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {                Toast.makeText(CheckBoxActivity.this,isChecked?"cb6被选中":"cb6未被选中",Toast.LENGTH_SHORT).show();            }        });        CheckBox checkBox2 = findViewById(R.id.cb_7);        checkBox2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {            @Override            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {                Toast.makeText(CheckBoxActivity.this,isChecked?"cb7被选中":"cb7未被选中",Toast.LENGTH_SHORT).show();            }        });    }}

界面运行效果如下图所示:

我们设置了两组checkbox,其中第一组采用默认的样式,第二组采用自定义的样式,并且还添加了监听事件,通过Toast可以弹出相应的文字内容。

自定义的bg_checkbox.xml文件,在res/drawable目录下,代码如下:

<?xml version="1.0" encoding="utf-8"?>        

我们用了两张小的图标,来表示选中和未选中复选框的状态变化。

ImageView

ImageView从字面义理解为图像视图,这里我们讲解以下内容:①常用属性;②加载网络图片

我们创建的ImageViewActivity活动类中会附带一个activity_image_view.xml文件,该文件代码如下:

<?xml version="1.0" encoding="utf-8"?>                               

ImageViewActivity代码主要用来加载第三方的网络图片,这里我们选择了一张王者农药里的大小姐图片,代码如下:

package com.autumn;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.ImageView;import com.bumptech.glide.Glide;public class ImageViewActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_image_view);        ImageView imageView = findViewById(R.id.iv_4);        //加载孙尚香大小姐的网络图片        Glide.with(this).load("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1554742176602&di=46cebc51f7c64b446c38793329e9b8d2&imgtype=0&src=http%3A%2F%2Fwww.ooqiu.com%2Fuploads%2Fallimg%2F170726%2F262-1FH6142G20-L.jpg").into(imageView);    }}

我们先展示一下运行截图吧,相信大家都等不及了,如下:

哈哈哈,最后一张图片贼帅气吧(偷笑)!

好了,我们进行讲解,前面三张图都用了ImageView控件,src表示图片地址,我们把图片统一放到res/drawable目录下,scaleType中这里我们用了常见的三种属性值,其中fixXY属性会撑满控件,图片的宽高比会发生变化;fitCenter属性会保持宽高比缩放,直至图片可以完全显示,一般这样布局上下或者左右边缘会多出一点;centerCrop属性会保持宽高比缩放,直至完全覆盖控件,裁剪显示。

最后一张图片是通过网络加载得到,这里我们用到了Glide,一个第三方的库,github上链接为https://github.com/bumptech/glide,文档里面还介绍了glide的用法,部分截图如下:

我们找到app模块下的build.gradle文件,根据文档说明添加相应的依赖,完整代码如下:

apply plugin: 'com.android.application'android {    compileSdkVersion 28    defaultConfig {        applicationId "com.autumn"        minSdkVersion 21        targetSdkVersion 28        versionCode 1        versionName "1.0"        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'        }    }}repositories {    mavenCentral()    google()}dependencies {    implementation fileTree(dir: 'libs', include: ['*.jar'])    implementation 'com.android.support:appcompat-v7:28.0.0'    implementation 'com.android.support.constraint:constraint-layout:1.1.3'    testImplementation 'junit:junit:4.12'    androidTestImplementation 'com.android.support.test:runner:1.0.2'    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'    implementation 'com.github.bumptech.glide:glide:4.9.0'    annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'}

加载第三方库好了,还有一步就是运行网络的访问了,我们在manifests/AndroidManifest.xml文件添加一行代码,如下:

     

好了,加上这行代码就能就可以访问网络图片了。

这次的分享到这里就结束了,有疑惑的可以在下方评论区留言!

更多相关文章

  1. productFlavors 用法
  2. Android(安卓)开发第七弹:简易时钟(秒表)
  3. android initlogo.rle 在32位LCD上显示
  4. Android(安卓)底部支付弹窗
  5. Android开发之数据存储全方案
  6. android 手势识别代码
  7. android显示段落文本及多行文本显示处理
  8. android下拉刷新+左滑删除的实现(第一种方式)
  9. Gallery和GridView浅析

随机推荐

  1. 我的HTML INPUT无效标记,请帮忙
  2. java 使用htmlunit模拟登录爬取新浪微博
  3. 如何将jQuery输入掩码实现到@ Html.TextB
  4. 是否可以在两行中输出'submit'的值?
  5. 固定定位,父元素具有转换
  6. 49、html基础认识&常用标签(1)
  7. html5第十课时,简单的计算器
  8. [转]Html position(static、relative、abs
  9. 零基础HTML5游戏制作教程 第3章 图形的移
  10. MonoRail学习笔记十三:NVelocity的增强功