Android中的一些控件

19 篇文章 1 订阅

1.ImageView(图像视图)

1.1imageView的基本使用

ImageView 见名知意,就是用来显示图像的一个View或者说控件

基本属性:

1.2 src属性和backgroud属性的区别

在API文档中我们发现ImageView有两个可以设置图片的属性,分别是:src和background 常识: ① background通常指的都是背景,而src指的是内容!! ② 当使用src填入图片时,是按照图片大小直接填充,并不会进行拉伸,而使用background填入图 片,则是会根据ImageView给定的宽度来进行拉伸

 例如:

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" 
  xmlns:tools="http://schemas.android.com/tools" 
  android:id="@+id/LinearLayout1" 
  android:layout_width="match_parent" 
  android:layout_height="match_parent" 
  android:orientation="vertical" 
  tools:context="com.jay.example.imageviewdemo.MainActivity" > 
  <ImageView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/pen" /> 
  <ImageView 
    android:layout_width="200dp" 
    android:layout_height="wrap_content" 
    android:background="@drawable/pen" /> 
  <ImageView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/pen" /> 
  <ImageView 
    android:layout_width="200dp" 
    android:layout_height="wrap_content" 
    android:src="@drawable/pen" /> 
</LinearLayout>

Java代码中设置blackground和src属性:

前景(对应src属性):setImageDrawable();
背景(对应background属性):setBackgroundDrawable();

二者结合妙用

<ImageView
    android:layout_gravity="center"
    android:padding="20dp"
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:background="@drawable/shape_bg"
    android:src="@mipmap/pen" />

2.3 scaleType属性 android:scaleType

  • android:scaleType用于设置显示的图片如何缩放或者移动以适应ImageView的大小 Java代码中可以通过imageView.setScaleType(ImageView.ScaleType.CENTER);来设置。

  • scaleType可选值如下:

    • fitXY:对图像的横向与纵向进行独立缩放,使得该图片完全适应ImageView,但是图片的横纵比可能会发生改变

    • fitStart:保持纵横比缩放图片,知道较长的边与Image的编程相等,缩放完成后将图片放在ImageView的左上角

    • fitCenter:同上,缩放后放于中间;

    • fitEnd:同上,缩放后放于右下角;

    • center:保持原图的大小,显示在ImageView的中心。当原图的size大于ImageView的size,超过部分裁剪处理。

    • centerCrop:保持横纵比缩放图片,知道完全覆盖ImageView,可能会出现图片的显示不完全

    • centerInside:保持横纵比缩放图片,直到ImageView能够完全地显示图片

    • matrix:默认值,不改变原图的大小,从ImageView的左上角开始绘制原图, 原图超过ImageView的部分作裁剪处理

  • fitEnd , fitStart , fitCenter,fitXY

    带有“fit”字样的,会显示图片的全部内容。

    fitStart,fitCenter,fitEnd 图片会按原比例显示。图片会往指定的方向靠拢。

    fitXY会拉伸图片,铺满整个ImageView。

<ImageView
    android:background="#ffc"
    android:layout_width="300dp"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:scaleType="fitStart"
    android:src="@mipmap/ic_launcher" />
  • centerCrop 与 centerInside

    centerCrop:按横纵比缩放,直接完全覆盖整个ImageView centerInside:按横纵比缩放,使得ImageView能够完全显示这个图片

  • fitXY

    不按比例缩放图片,目标是把图片塞满整个View

  • matrix

    从ImageView的左上角开始绘制原图,原图超过ImageView的部分作裁剪处理

  • center

    保持原图的大小,显示在ImageView的中心。当原图的size大于ImageView的size,超过部分裁剪处理

2.4 alpha设置图片透明度

设置 alpha 值,能改变整个 ImageView 的透明度

<ImageView
   style="@style/IvDemo1"
   android:layout_marginStart="20dp"
   android:alpha="0.9"
   android:scaleType="fitCenter"
   android:src="@drawable/pic_2_robots" />

3.Button

Button 控件继承 TextView ,拥有 TextView 的属性

3.1Button的基本使用

常用属性:

 3.2StateListDrawable简介

StateListDrawable 是Drawable资源的一种,可以根据不同的状态,设置不同的图片效果,关键节点 < selector > ,我们只需要将Button的 background 属性设置为该drawable资源即可轻松实现,按下按钮时不同的按钮颜色或背景!

 例如:

btn_bg1.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:drawable="@color/color1" android:state_pressed="true"/>
  <item android:drawable="@color/color4" android:state_enabled="false"/>
  <item android:drawable="@color/color3" />
</selector>

layout_btn.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical"
  android:paddingTop="50dp">
  <Button
    android:id="@+id/btnOne"
    android:layout_width="match_parent"
    android:layout_height="64dp"
    android:background="@drawable/btn_bg1"
    android:text="按钮"
    android:textColor="#ffffff"
    android:textSize="20sp"    
    android:textStyle="bold" />
  <Button
    android:id="@+id/btnTwo"
    android:layout_width="match_parent"
    android:layout_height="64dp"
    android:text="按钮不可用"
    android:textColor="#000000"
    android:textSize="20sp"
    android:textStyle="bold" />
</LinearLayout>

MainActivity.java

public class MainActivity extends Activity {
  private Button btnOne,btnTwo;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    btnOne = findViewById(R.id.btnOne);
    btnTwo = findViewById(R.id.btnTwo);
    btnTwo.setOnClickListener(new OnClickListener() {  //按钮绑定点击事件
      @Override
      public void onClick(View v) {
        if(btnTwo.getText().toString().equals("按钮不可用")){
          btnOne.setEnabled(false);
          btnTwo.setText("按钮可用");
       }else{
          btnOne.setEnabled(true);
          btnTwo.setText("按钮不可用");
       }
     }
   });
 }
}

3.3按钮的分类

3.3.1 ImageButton(图标按钮)

ImageButton显示了带有图像(而不是文本)的按钮,用户可以按下或单击该按钮。

属性:

 例如:

 <ImageButton 						//使用ImageButton标签
     android:id="@+id/img_button"   // ImageButton的ID,和Button的ID一样
     android:layout_height="wrap_content" //ImageButton的宽和高属性,
     android:layout_width="wrap_content"
     android:src=@drawable/img_name > 

   //ImageButton上显示的图片,表示从图片资源文件中读取名字为img_name的图片

3.3.2单选按钮

  • RadioButton 为单选框,存在多个选项情况下,需要将 RadioButton 放到 RadioGroup 组中使用,从而实现单选功能。

  • RadioGroup 中可以通过 orientation 来控制排列方式,水平还是垂直。

RadioGroup 常用属性:

 RadioButton 常用属性 :

 例如:

<!-- RadioGroup -->
<RadioGroup
    android:id="@+id/radioGroup"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:checkedButton="@id/man">
    <!-- RadioButton -->
    <RadioButton
        android:id="@+id/man"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="男"
        android:textSize="16sp"/>
    <!-- RadioButton -->
    <RadioButton
        android:id="@+id/woman"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="女"
        android:textSize="16sp"/>
    <!-- RadioButton -->
    <RadioButton
        android:id="@+id/none"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="无"
        android:textSize="16sp"/>
</RadioGroup>

3.4点击事件

RadioGroup radgroup = (RadioGroup) findViewById(R.id.radioGroup);
    //第一种获得单选按钮值的方法 
    //为radioGroup设置一个监听器:setOnCheckedChanged() 
    radgroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
      @Override
      public void onCheckedChanged(RadioGroup group, int checkedId) {
        RadioButton radbtn = (RadioButton) findViewById(checkedId);
        Toast.makeText(getApplicationContext(), "按钮组值发生改变,你选了" + radbtn.getText(), 		Toast.LENGTH_LONG).show();
     }
  });

 3.5CheckBok

  • Android CheckBox 是可以由用户切换的开/关开关。为用户提供一组互不排斥(多选)的可选选项时,应使用CheckBox。

3.5.1属性:

 案例:

<CheckBox  
       android:id="@+id/checkbox1"  
       android:layout_width="wrap_content"  
       android:layout_height="wrap_content"  
       android:layout_above="@+id/button1"  
       android:layout_alignLeft="@+id/linearLayout1"   
       android:text="牛仔" />  

3.5.2:点击事件

<CheckBox  
        android:id="@+id/cb_one"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_above="@+id/button1"  
        android:layout_alignLeft="@+id/linearLayout1"   
        android:text="牛仔"/>  
  
<CheckBox  
        android:id="@+id/cb_two"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_alignBaseline="@+id/checkbox3"  
        android:layout_alignBottom="@+id/checkbox3"  
        android:layout_marginLeft="27dp"  
        android:layout_toRightOf="@+id/checkbox3"  
        android:text="面包" />  

<CheckBox  
        android:id="@+id/cb_three"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_alignBaseline="@+id/checkbox1"  
        android:layout_alignBottom="@+id/checkbox1"  
        android:layout_toRightOf="@+id/button1"  
        android:text="黄油" /> 

public class MainActivity extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener{
  private CheckBox cb_one;
  private CheckBox cb_two;
  private CheckBox cb_three;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    cb_one = (CheckBox) findViewById(R.id.cb_one);
    cb_two = (CheckBox) findViewById(R.id.cb_two);
    cb_three = (CheckBox) findViewById(R.id.cb_three);
    cb_one.setOnCheckedChangeListener(this);
    cb_two.setOnCheckedChangeListener(this);
    cb_three.setOnCheckedChangeListener(this);
 }
  @Override
  public void onCheckedChanged(CompoundButton compoundButton, boolean b){
   if(compoundButton.isChecked())
		Toast.makeText(this,compoundButton.getText().toString(),Toast.LENGTH_SHORT).show();
 }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spinner 是 Android 常用的一个下拉列表控件,可以用来展示一个列表并且允许用户选择其一个选项。下面是 Spinner 控件的基本使用步骤: 1. 在 XML 布局文件添加 Spinner 控件: ```xml <Spinner android:id="@+id/spinner" android:layout_width="wrap_content" android:layout_height="wrap_content" /> ``` 2. 在 Java 代码获取 Spinner 控件的实例,并为其设置数据源和选择事件监听器: ```java Spinner spinner = findViewById(R.id.spinner); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.planets_array, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { // 处理选择事件 String selectedItem = (String) parent.getItemAtPosition(position); Toast.makeText(MainActivity.this, "You selected: " + selectedItem, Toast.LENGTH_SHORT).show(); } @Override public void onNothingSelected(AdapterView<?> parent) { // 未选择任何项时的处理 } }); ``` 在上述代码,我们首先通过 `ArrayAdapter.createFromResource()` 方法创建了一个适配器,并将其设置为 Spinner 的数据源。然后,我们为 Spinner 设置了选择事件监听器,当用户选择某一项时,会回调 `onItemSelected()` 方法,此时我们可以通过 `parent.getItemAtPosition(position)` 方法获取用户选择的项。同时,我们还设置了下拉列表项的布局样式。 最后需要注意的是,在 XML 布局文件的 Spinner 控件可能需要设置一些额外的属性,例如 `android:entries` 可以直接设置数据源,`android:prompt` 可以为 Spinner 设置提示文本等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值