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程序设计有所帮助。

(0)

相关推荐

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

  • Android ImageView Src 和Background 区别

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

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

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

  • 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类中的ScaleType属性设置

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

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

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

  • 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使用CircleImageView实现圆形头像的方法

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

  • Android中ImageView用法实例分析

    本文实例分析了Android中ImageView用法.分享给大家供大家参考,具体如下: 猜牌游戏大家可能以前都玩过,这里我们用这个小游戏来说明ImageView的用法. 首先,在res/drawable中引入三张牌:分别是梅花7,梅花8,梅花9 然后在res/layout/main.xml中配置一个TextView,三个ImageView以及一个Button <?xml version="1.0" encoding="utf-8"?> <Linea

  • Android中Bitmap用法实例分析

    本文实例讲述了Android中Bitmap用法.分享给大家供大家参考,具体如下: 一般在android程序中把图片文件放在res/drawable目录下就可以通过R.drawable.id来使用,但在存储卡中的图片怎样引用呢?下面通过实现这个功能来介绍Bitmap的用法. 程序如下: import java.io.File; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.B

  • Android中ListView用法实例分析

    本文实例分析了Android中ListView用法.分享给大家供大家参考,具体如下: 通过在Layout中添加ListView Widget可以达到在页面布局具有列表效果的交互页面.在这里通过举例来说明怎样在Layout中添加ListView以及怎样应用. 配合设计了两个事件Listener:  OnItemSelectedListener事件为鼠标的滚轮转动时所选择的值:OnItemClickListener事件则为当鼠标单击时,所触发的事件.由此可以区别出list中的"选择"与&q

  • Android中ListActivity用法实例分析

    本文实例分析了Android中ListActivity用法.分享给大家供大家参考,具体如下: 程序如下: import android.app.ListActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.ArrayAdapter; import android.widge

  • Android中AlertDialog用法实例分析

    本文实例分析了Android中AlertDialog用法,分享给大家供大家参考,具体如下: Android中AlertDialog为一些程序提供了对话框,有些功能能够进一步满足程序的需要.下面举例介绍. 程序如下: import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.

  • Android中Matrix用法实例分析

    本文实例讲述了Android中Matrix用法.分享给大家供大家参考,具体如下: Matrix ,中文里叫矩阵,高等数学里有介绍,在图像处理方面,主要是用于平面的缩放.平移.旋转等操作. 首先介绍一下矩阵运算.加法和减法就不用说了,对应位相加就好.图像处理,主要用到的是乘法 .下面是一个乘法的公式: 在 Android 里面, Matrix 由 9 个 float 值构成,是一个 3*3 的矩阵.如下图: 解释一下,上面的sinX 和cosX ,表示旋转角度的cos 值和sin值,注意,旋转角度

  • Android中WebView用法实例分析

    本文实例讲述了Android中WebView用法.分享给大家供大家参考,具体如下: WebView相当于一个迷你浏览器,采用WebKit内核,因此完美支持html,javascript,css等. 在开发过程中应该注意几点: 1.AndroidManifest.xml中必须使用许可"android.permission.INTERNET",否则会出Web page not available错误. 2.如果访问的页面中有Javascript,则webview必须设置支持Javascri

  • Android 中WallpaperManager用法实例

    Android 中WallpaperManager用法实例 注意:壁纸的设置得加入权限: <uses-permission android:name="android.permission.SET_WALLPAPER"/> 1.WallpaperManager  对象的获得: wallpaperManager =WallpaperManager.getInstance(this); 2.设置壁纸的方法: 方法一:wallpaperManager.setBitmap(); /

  • Java中的instanceof关键字在Android中的用法实例详解

    在下面介绍Android中如何使用instanceof关键字开发更方便时,先来温习一下java中instanceof的概念. instanceof大部分的概念是这样定义的:instanceof是Java的一个二元操作符,和==,>,<是同一类东西.由于它是由字母组成的,所以也是Java的保留关键字.它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据.举个栗子: String s = "I AM an Object!"; boolean isObj

  • Android中Notification用法实例总结

    本文实例总结了 Android中Notification用法.分享给大家供大家参考,具体如下: 我们在用手机的时候,如果来了短信,而我们没有点击查看的话,是不是在手机的最上边的状态栏里有一个短信的小图标提示啊?你是不是也想实现这种功能呢?今天的Notification就是解决这个问题的. 我们也知道Android系统也是在不断升级的,有关Notification的用法也就有很多种,有的方法已经被android抛弃了,现在我实现了三种不同的方法,并适应不同的android版本.现在我就把代码公布出

随机推荐