ImageView
- 常用属性
- 加载网络图片
还是原来的工程:
新建activity ImageViewActivity.java
在activity_main.xml里新增Button:
<Button
android:id="@+id/btn_imageview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="ImageView"
android:textAllCaps="false"/>
在MainActivity.java里新增ImageView的内容:
package com.example.helloworld;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Switch;
public class MainActivity extends AppCompatActivity {
private Button mBtnTextView; //声明一个Button类型的变量,变量名为mBtnTextView
// 如果有报错,在出错地方按Alt+Enter键,会自动导入包
private Button mBtnButton;
private Button mBtnEditText;
private Button mBtnRadioButton;
private Button mBtnCheckBox;
private Button mBtnImageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mBtnTextView = findViewById(R.id.btn_textview); //找activity_main文件中设置的id
mBtnButton = findViewById(R.id.btn_button); //找activity_main文件中设置的id
mBtnEditText = findViewById(R.id.btn_edittext);
mBtnRadioButton = findViewById(R.id.btn_radiobutton);
mBtnCheckBox = findViewById(R.id.btn_checkbox);
mBtnImageView = findViewById(R.id.btn_imageview);
setListeners();
}
private void setListeners() {
OnClick onClick = new OnClick();
mBtnTextView.setOnClickListener(onClick);//监听事件
mBtnButton.setOnClickListener(onClick);
mBtnEditText.setOnClickListener(onClick);
mBtnRadioButton.setOnClickListener(onClick);
mBtnCheckBox.setOnClickListener((onClick));
mBtnImageView.setOnClickListener((onClick));
}
private class OnClick implements View.OnClickListener { //然后按快捷键Ctrl+O
@Override
public void onClick(View v) {
Intent intent = null;
switch (v.getId()) { //根据不同的id执行相应的操作
case R.id.btn_textview:
//跳转到TextView演示
intent = new Intent(MainActivity.this, TextViewActivity.class);
startActivity(intent);
break;
case R.id.btn_button:
//跳转到Button演示
intent = new Intent(MainActivity.this, ButtonActivity.class);
startActivity(intent);
break;
case R.id.btn_edittext:
//跳转到EditText演示
intent = new Intent(MainActivity.this, EditTextActivity.class);
startActivity(intent);
break;
case R.id.btn_radiobutton:
//跳转到RadioButton演示
intent = new Intent(MainActivity.this, RadioButtonActivity.class);
startActivity(intent);
break;
case R.id.btn_checkbox:
//跳转到CheckBox演示
intent = new Intent(MainActivity.this, CheckBoxActivity.class);
startActivity(intent);
break;
case R.id.btn_imageview:
//跳转到ImageView演示
intent = new Intent(MainActivity.this, ImageViewActivity.class);
startActivity(intent);
break;
}
startActivity(intent);
}
}
}
找一个图片放到这个文件夹:
scaleType:
fitXY:撑满控件,宽高比可能发生改变
fitCenter:保持宽高比缩放,直至能够完全显示
centerCrop:保持宽高比缩放,直至完全覆盖控件,裁剪显示
后面要做一个让控件加载一张网络的图片,提前做一下准备:
教程是通过GitHub下载的,但是访问太慢了,我通过码云下载:
https://gitee.com/mirrors/glide?_from=gitee_search (页面下滑还有glide的使用方法)
方法①
点这里下载,下载好的文件放在工程目录的/lib下
方法②
通过项目/app下的build.gradle文件来构建
拷贝以下红框内容:
粘贴,点击蓝框的,更新同步:
因为要从网络上获取图片,所以要打开网络权限:
/app/src/main 下的 AndroidManifest.xml
添加:
<uses-permission android:name="android.permission.INTERNET"/>
activity_image_view.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp">
<!--background是背景,src是内容-->
<ImageView
android:id="@+id/iv_1"
android:layout_width="300dp"
android:layout_height="150dp"
android:background="#FF9900"
android:src="@drawable/bg_picture"
android:scaleType="fitXY"/>
<ImageView
android:id="@+id/iv_2"
android:layout_width="300dp"
android:layout_height="150dp"
android:background="#FF9900"
android:src="@drawable/bg_picture"
android:scaleType="fitCenter"
android:layout_below="@id/iv_1"
android:layout_marginTop="10dp"/>
<ImageView
android:id="@+id/iv_3"
android:layout_width="300dp"
android:layout_height="150dp"
android:background="#FF9900"
android:src="@drawable/bg_picture"
android:scaleType="centerCrop"
android:layout_below="@id/iv_2"
android:layout_marginTop="10dp"/>
<!--让下面这个控件加载一张网络的图片-->
<ImageView
android:id="@+id/iv_4"
android:layout_width="300dp"
android:layout_height="150dp"
android:background="#FF9900"
android:scaleType="centerCrop"
android:layout_below="@id/iv_3"
android:layout_marginTop="10dp"/>
</RelativeLayout>
ImageViewActivity.java
package com.example.helloworld;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageView;
import android.os.Bundle;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
public class ImageViewActivity extends AppCompatActivity {
private ImageView mIv4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image_view);
mIv4 = findViewById(R.id.iv_4);
Glide.with(this).load("https://www.baidu.com/img/PCfb_5bf082d29588c07f842ccde3f97243ea.png").into(mIv4);
//load后面放的是网络上的图片的地址链接
}
}