Android中ImageView用法实例分析

本文实例分析了Android中ImageView用法。分享给大家供大家参考,具体如下:

猜牌游戏大家可能以前都玩过,这里我们用这个小游戏来说明ImageView的用法。

首先,在res/drawable中引入三张牌:分别是梅花7,梅花8,梅花9

然后在res/layout/main.xml中配置一个TextView,三个ImageView以及一个Button

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="vertical" >
  <TextView
    android:id="@+id/tv"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello" />
  <Button
    android:id="@+id/button"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    />
  <ImageView
    android:id="@+id/iv07"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    />
  <ImageView
    android:id="@+id/iv08"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    />
  <ImageView
    android:id="@+id/iv09"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    />
</LinearLayout>

程序如下所示:

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class A04Activity extends Activity {
 private ImageView iv07,iv08,iv09;
 private TextView tv;
 private Button b;
 private int[] s={
  R.drawable.puke07,
  R.drawable.puke08,
  R.drawable.puke09
  };
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    iv07=(ImageView)findViewById(R.id.iv07);
    iv08=(ImageView)findViewById(R.id.iv08);
    iv09=(ImageView)findViewById(R.id.iv09);
    tv=(TextView)findViewById(R.id.tv);
    b=(Button)findViewById(R.id.button);
    randon();
    //下面以ImageView的OnClickListener()方法对选择的不同牌做不同的反应
  iv07.setOnClickListener(new OnClickListener(){
  @Override
  public void onClick(View v) {
  // TODO Auto-generated method stub
  iv07.setImageDrawable(getResources().getDrawable(s[0]));
  iv08.setImageDrawable(getResources().getDrawable(s[1]));
  iv09.setImageDrawable(getResources().getDrawable(s[2]));
  iv08.setAlpha(100);  //对没有选择的牌做灰暗处理
  iv09.setAlpha(100);
  if(s[0]==R.drawable.puke08){ //如果选择的牌是梅花8的话就猜对了
   tv.setText("恭喜你,猜对了!!!");
  }
  else{
   tv.setText("亲,猜错了,要不要再来一次?");
  }
  }
  });
  iv08.setOnClickListener(new OnClickListener(){
  @Override
  public void onClick(View v) {
  // TODO Auto-generated method stub
  iv07.setImageDrawable(getResources().getDrawable(s[0]));
  iv08.setImageDrawable(getResources().getDrawable(s[1]));
  iv09.setImageDrawable(getResources().getDrawable(s[2]));
  iv07.setAlpha(100);
  iv09.setAlpha(100);
  if(s[1]==R.drawable.puke08){
   tv.setText("恭喜你,猜对了!!!");
  }
  else{
   tv.setText("亲,猜错了,要不要再来一次?");
  }
  }
  });
  iv09.setOnClickListener(new OnClickListener(){
  @Override
  public void onClick(View v) {
  // TODO Auto-generated method stub
  iv07.setImageDrawable(getResources().getDrawable(s[0]));
  iv08.setImageDrawable(getResources().getDrawable(s[1]));
  iv09.setImageDrawable(getResources().getDrawable(s[2]));
  iv07.setAlpha(100);
  iv08.setAlpha(100);
  if(s[2]==R.drawable.puke09){
   tv.setText("恭喜你,猜对了!!!");
  }
  else{
   tv.setText("亲,猜错了,要不要再来一次?");
  }
  }
  });
  b.setOnClickListener(new OnClickListener(){
  @Override
  public void onClick(View v) {
  // TODO Auto-generated method stub
  tv.setText("猜猜梅花8在哪里");
  iv07.setImageDrawable(getResources().getDrawable(R.drawable.puke00));
  //刚开始的时候显示扑克牌的背面
  iv08.setImageDrawable(getResources().getDrawable(R.drawable.puke00));
  iv09.setImageDrawable(getResources().getDrawable(R.drawable.puke00));
  iv07.setAlpha(255);//
  iv08.setAlpha(255);
  iv09.setAlpha(255);
  randon();
  }
  });
  }
//randon方法是进行随机地洗牌
  public void randon(){
   for(int i=0;i<s.length;i++){
   int tmp=s[i];
   int a=(int)(Math.random()*2);
   s[i]=s[a];
   s[a]=tmp;
   }
  }
}

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android基本组件用法总结》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。

时间: 2016-01-30

Android实现手势控制ImageView图片大小

本文实例实现的主要功能是在ImageView中识别手势用以控制图片放大或缩小,具有一定的参考价值,分享给大家. public class MatrixImageView extends ImageView { private GestureDetector mGestureDetector; private Matrix mMatrix = new Matrix(); private float mImageWidth; private float mImageHeight; private f

Android 圆角 ImageView类可设置弧度(代码简单)

废话不多说了,直接给大家贴代码了,具体代码如下所示: public class RoundImageView extends ImageView { private Paint paint; private int roundWidth = 50; private int roundHeight = 50; private Paint paint2; public RoundImageView(Context context, AttributeSet attrs, int defStyle)

Android ImageView随手势变化动态缩放图片

在Android实际项目开发中,经常要用到ImageView这个组件,如果纯粹只是用来显示某一张图片,这个原生的组件是很方便的.但有时候为了效果更炫一点,比如很多软件都有的对图片的处理,随着手势的变化来拉大或缩小图片,这时就需要对原生的ImageView做一些处理来达到我们想要的效果. 原理就是Matrix 和PointF的运用,其实明白后一点都不难.我们需要写一个类继承ImageView来实现我们想要的功能,我这里演示的是类名是:ScaleImageView ,主要是重写onTouchEven

Android ImageView Src 和Background 区别

之前使用Glide的时候被ImageView的图片设置弄混了(很低级的问题,确是经常犯的问题),所以就去看了一下ImageView,补补基础. 首先ImageView有两个显示图片的属性,分别是src和background.从名字上看可以知道第一个是资源(画),第二个是背景(画框). 如何设置这两个值呢? //background mImageView.setBackground(); mImageView.setBackgroundResource(); mImageView.setBackg

Android使用CircleImageView实现圆形头像的方法

有时我们在应用中会用到圆形头像,下面是利用CircleImageView实现圆形头像的演示,下面效果和代码,效果如图 实现起来也比较简单,先在项目中建一个circleimageview包用来存放CircleImageView类,待会直接把CircleImageView类复制到包里就可以使用了 然后,再建一个attrs.xml,其代码相当简单,定义了圆形边框宽度和颜色 <?xml version="1.0" encoding="utf-8"?> <r

Android手势滑动实现ImageView缩放图片大小

本文推出了两种Android手势实现ImageView缩放图片大小的方法,分享给大家供大家参考,具体内容如下 方法一: 将以下代码写到MulitPointTouchListener.java中,然后对你相应的图片进行OnTouchListener. 例如:imageView.setOnTouchListener(new MulitPointTouchListener ()); 在xml中要将ImageView的缩放格式改成Matrix 例如:android:scaleType="matrix&q

Android使用控件ImageView加载图片的方法

在 Android 加载图片一般使用 ImageView,这里简单记录一下这个控件的使用方法. 最简单就是在 xml 里直接使用 ImageView 标签: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="

Android实现ImageView图片双击放大及缩小

本文实例介绍了Android实现ImageView图片双击放大及缩小的相关技巧,分享给大家供大家参考,具体内容如下 public class DoubleScaleImageView extends ImageView implements OnTouchListener, OnGlobalLayoutListener { private boolean isFirst = false; private float doubleScale;// 双击放大的值 private Matrix mSc

图文讲解Android的ImageView类中的ScaleType属性设置

ScaleType设置图解 图文相配很清晰的看出每个属性的效果, 感觉 CENTER_CROP 比较有用,长宽自动适应 ImageView ,整个图片自动缩略填充整个区域且居中显示(高宽不一定是view的尺寸),以前用JS在网页上实现的,在 android上一开始还在想要用java来自己实现这个效果太麻烦了,没想到系统自带方便多了 ImageView的Scaletype决定了图片在View上显示时的样子,如进行何种比例的缩放,及显示图片的整体还是部分,等等. 设置的方式包括: 1. 在layou

Android在自定义类中实现自定义监听器方式

监听器可以说是Android开发中最常用的东西之一.我们通过监听器可以监听对象的各种变化事件,并进行一些需要的处理,相当有用,而且使用起来也很简单.其实,监听器就相当于C++中的回调函数,达到条件就回调执行. 很多时候,我们在自定义控件类中也需要实现一些属性变化的监听器,实现跟原生控件监听器一样的功能.以下分几个步骤说明自定义监听器实现和使用(以自定义类MyClass加载完成监听器为例): 一.自定义监听器的实现: 1. 定义一个加载完成监听接口 //加载监听接口 public static i

举例讲解Python面相对象编程中对象的属性与类的方法

python 对象的属性 进入正题,来看一个实例来了解python中类,对象中公有属性,私有属性及局部变量,全局变量的区别. root@10.1.6.200:~# cat object.py #!/usr/bin/env python #coding:utf8 class Dave(): var1 = "class atribute,public atrribute var1" #类属性,公有属性var1 __var2 = "class self atribute __var

在python的类中动态添加属性与生成对象

本文将通过一下几个方面来一一进行解决 1.程序的主要功能 2.实现过程 3.类的定义 4.用生成器generator动态更新每个对象并返回对象 5.使用strip 去除不必要的字符 6.rematch匹配字符串 7.使用timestrptime提取字符串转化为时间对象 8.完整代码 程序的主要功能 现在有个存储用户信息的像表格一样的文档:第一行是属性,各个属性用逗号(,)分隔,从第二行开始每行是各个属性对应的值,每行代表一个用户.如何实现读入这个文档,每行输出一个用户对象呢? 另外还有4个小要求

Android编程中TextView字体属性设置方法(大小、字体、下划线、背景色)

本文实例讲述了Android编程中TextView字体属性设置方法(大小.字体.下划线.背景色).分享给大家供大家参考,具体如下: import android.content.Context; import android.graphics.Color; import android.text.SpannableString; import android.text.Spanned; import android.text.style.AbsoluteSizeSpan; import andr

谈谈Python:为什么类中的私有属性可以在外部赋值并访问

Python:为什么类中的私有属性可以在外部赋值并访问? 问题引入 在慕课网上学习Python**类中的私有属性**的时候,看到了一个同学的提问: 将count改为__count,为什么实例变量在外部仍然可以修改__count?这里print p1.__count可以打印出100 class Person(object): __count = 0 def __init__(self, name): Person.__count = Person.__count + 1 self.name = n

实例讲解Android多线程应用开发中Handler的使用

其实可以理解Handler为主线程和另外的线程之间进行数据更新的东东,并且Handler在主线程中,并在Handler直接调用线程的run方法 package com.Handler02; import android.app.Activity; import android.os.Bundle; import android.os.Handler; public class Handler02Activity extends Activity { /** Called when the act

PHP获取类中常量,属性,及方法列表的方法

复制代码 代码如下: $r = new ReflectionClass($this); Zend_Debug::dump($r->getConstants(), "Constants"); Zend_Debug::dump($r->getProperties(), "Properties"); Zend_Debug::dump($r->getMethods(), "Methods");

Android源码系列之深入理解ImageView的ScaleType属性

做Android开发的童靴们肯定对系统自带的控件使用的都非常熟悉,比如Button.TextView.ImageView等.如果你问我具体使用,我会给说:拿ImageView来说吧,首先创建一个新的项目,在项目布局文件中应用ImageView控件,代码如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.