• Android学习笔记⑥——UI组件的学习ImageView相关


    ImageView是集成了View的组件,它的主要工作就是显示一些图片啊,虽然他的用法一句话概括了,但是我觉得学起来应该不会太简单,正所谓 短小而精悍么 :) 

    ImageView 派生了 ImageButton与QuickContactBadge两个类,ImageButton 与 Button的区别在于Button生成的按钮显示的文字,而ImageButton上面显示的是图片,当然我们也可以给Button设置他的background来添加一些图片;ImageButton是非常灵活的一个组件,因为他可以根据自定义的Drawable来改变按钮的一些动态样式;ImageButton同时也派生了一个ZoomButton得类,他可以“放大”、“缩小”跟他相似的还有一个叫做 ZoomControls的组件,只不过他同时提供了放大跟缩小的功能。

    下面做一个例子,做一个简单的相册,上同时可以改变他的透明度

    布局代码:

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:orientation="vertical">
     6 
     7     <LinearLayout
     8         android:layout_width="wrap_content"
     9         android:layout_height="wrap_content"
    10         android:layout_gravity="center_horizontal">
    11 
    12         <Button
    13             android:id="@+id/btnDown"
    14             android:layout_width="wrap_content"
    15             android:layout_height="wrap_content"
    16             android:text="降低透明底" />
    17 
    18         <Button
    19             android:id="@+id/btnUp"
    20             android:layout_width="wrap_content"
    21             android:layout_height="wrap_content"
    22             android:text="增加透明底" />
    23 
    24         <Button
    25             android:id="@+id/btnNext"
    26             android:layout_width="wrap_content"
    27             android:layout_height="wrap_content"
    28             android:text="下一张图片" />
    29     </LinearLayout>
    30 
    31     <LinearLayout
    32         android:layout_width="match_parent"
    33         android:layout_height="wrap_content">
    34 
    35         <ImageView
    36             android:id="@+id/image"
    37             android:layout_width="match_parent"
    38             android:layout_height="wrap_content"
    39             android:scaleType="fitCenter"
    40             android:src="@drawable/pic1" />
    41     </LinearLayout>
    42 
    43 </LinearLayout>

    java代码:

     1 package com.doliao.helloworld;
     2 
     3 import android.os.Bundle;
     4 import android.support.v7.app.AppCompatActivity;
     5 import android.view.View;
     6 import android.widget.Button;
     7 import android.widget.ImageView;
     8 
     9 public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    10 
    11     ImageView imageView;
    12     Button btnUp, btnDown, btnNext;
    13     int arrayImageId[] = new int[]{R.drawable.pic1, R.drawable.pic2, R.drawable.pic3, R.drawable.pic4, R.drawable.pic5};
    14     int currentIma = 1;  //默认为第一张
    15     int alpha = 255; //默认alpha值为255
    16 
    17     @Override
    18     protected void onCreate(Bundle savedInstanceState) {
    19         super.onCreate(savedInstanceState);
    20         setContentView(R.layout.activity_imageview);
    21 
    22         imageView = (ImageView) findViewById(R.id.image);
    23         btnUp = (Button) findViewById(R.id.btnUp);
    24         btnDown = (Button) findViewById(R.id.btnDown);
    25         btnNext = (Button) findViewById(R.id.btnNext);
    26 
    27         btnUp.setOnClickListener(this);
    28         btnDown.setOnClickListener(this);
    29         btnNext.setOnClickListener(this);
    30 
    31     }
    32 
    33     @Override
    34     public void onClick(View v) {
    35         if (v.equals(btnNext)) {
    36             imageView.setImageResource(arrayImageId[++currentIma % arrayImageId.length]);
    37         }
    38         if (v.equals(btnUp)) {
    39             alpha += 20;
    40             if (alpha >= 255) {
    41                 alpha = 255;
    42             }
    43         }
    44         if (v.equals(btnDown)) {
    45             alpha -= 20;
    46             if (alpha <= 0) {
    47                 alpha = 0;
    48             }
    49         }
    50         imageView.setImageAlpha(alpha);
    51     }
    52 }

    下面是运行的图:

    ImageButton 与Button 同为按钮组件,下面我们就来粗略的看一下他们的相同点和不同点

    因而ImageButton 不支持setText,而Button支持。反之,ImageButton 支持setImageURI,而Button不支持

    下图是Button ImageButton的图,可以看出 一个咋点击、弹起有个不同的形态,还是一个是一个形态,默认相同。

    QuickContactBadge(关联联系人)

    QuickContactBadge说白了也是图片按钮,但是他与图片按钮不同的就是,他可以指定联系人,当用户单击图片的时候就可以联系指定的人了。

    下面简单的学习下例子,用教程来记忆这个关键词。

    布局内的代码为:

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:orientation="vertical" android:layout_width="match_parent"
     4     android:layout_height="match_parent">
     5 
     6     <QuickContactBadge
     7         android:id="@+id/badge"
     8         android:layout_width="wrap_content"
     9         android:layout_height="wrap_content"
    10         android:src="@drawable/pic1"
    11         />
    12 </LinearLayout>

    java内的代码:

     1 package com.doliao.helloworld;
     2 
     3 import android.app.Activity;
     4 import android.os.Bundle;
     5 import android.widget.QuickContactBadge;
     6 
     7 /**
     8  * Created by Administrator on 2016/10/10 0010.
     9  */
    10 
    11 public class ImageViewActivity extends Activity{
    12 
    13     QuickContactBadge badge;
    14     @Override
    15     protected void onCreate(Bundle savedInstanceState) {
    16         super.onCreate(savedInstanceState);
    17         setContentView(R.layout.activyty_imageview2);
    18         badge = (QuickContactBadge) findViewById(R.id.badge);
    19 
    20         badge.assignContactFromEmail("021-88888888",false);
    21     }
    22 }

    运行的图片如下:

    这写就是ImageView的一些常用的组件已经常用的方法,如果错误,请指出,谢谢!!

    当然这不是ImageView下的所以的组件,还有其他的没有涉及到,等以后做东西遇到了在补充。

  • 相关阅读:
    [洛谷P3360]偷天换日
    [BZOJ3195]奇怪的道路
    [BAOJ3631]松鼠的新家
    [BZOJ4899]记忆的轮廓
    [BZOJ3940]Censoring
    P3303 [SDOI2013]淘金
    2019.8.5 NOIP模拟测试13 反思总结【已更新完毕】
    2019.8.3 NOIP模拟测试12 反思总结【P3938 斐波那契,P3939 数颜色,P3940 分组】
    2019.8.1 NOIP模拟测试11 反思总结
    洛谷P2178 [NOI2015]品酒大会
  • 原文地址:https://www.cnblogs.com/eoooxy/p/5942269.html
Copyright © 2020-2023  润新知