Android---21---ImageView

MainActivity.java:

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;

public class MainActivity extends Activity {

	//定义一个访问图片的数组
	int images[] = new int[] { R.drawable.yy00, R.drawable.yy01,
			R.drawable.yy02, R.drawable.yy03, R.drawable.yy04, R.drawable.yy05,
			R.drawable.yy06, R.drawable.yy07, R.drawable.yy08, R.drawable.yy09,
			R.drawable.yy11, R.drawable.yy12, R.drawable.yy13,

	};
	//定义当前的图片
	int currentimage = 2;
	private int alpha = 255;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		final Button plus = (Button) findViewById(R.id.plus);
		final Button minus = (Button) findViewById(R.id.minus);
		final ImageView imageView = (ImageView) findViewById(R.id.image1);
		final ImageView imageView2 = (ImageView) findViewById(R.id.image2);
		Button next = (Button) findViewById(R.id.next);

		next.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				imageView.setImageResource(images[++currentimage
						% images.length]);
			}
		});

		OnClickListener listener = new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				if (v == plus) {
					alpha += 20;
				}
				if (v == minus) {
					alpha -= 20;
				}
				if (alpha >= 255) {
					alpha = 255;
				}
				if (alpha <= 0) {
					alpha = 0;
				}
				imageView.setAlpha(alpha);
			}
		};
		//改变透明度
		plus.setOnClickListener(listener);
		minus.setOnClickListener(listener);

		imageView.setOnTouchListener(new OnTouchListener() {

			@Override
			public boolean onTouch(View v, MotionEvent event) {
				// TODO Auto-generated method stub
				BitmapDrawable bitmapDrawable = (BitmapDrawable) imageView
						.getDrawable();
				//获取第一个图片显示框中的位图
				Bitmap bitmap = bitmapDrawable.getBitmap();
				//bitmap图片实际大小与第一个ImageView的缩放比例
				double scale = bitmap.getWidth() / 320.0;
				//获取需要显示的图片的开始点
				int x = (int) (event.getX() * scale);
				int y = (int) (event.getY() * scale);
				if (x + 120 > bitmap.getWidth()) {
					x = bitmap.getWidth() - 120;
				}
				if (y + 120 > bitmap.getHeight()) {
					y = bitmap.getHeight() - 120;
				}
				// 显示图片的指定区域
				imageView2.setImageBitmap(Bitmap.createBitmap(bitmap, x, y,
						120, 120));
				imageView2.setAlpha(alpha);
				return false;
			}
		});
	}
}

activity_main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.imageviewdemo.MainActivity" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/plus"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="增大透明度" />

        <Button
            android:id="@+id/minus"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="降低透明度" />

        <Button
            android:id="@+id/next"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="下一张" />
    </LinearLayout>
    <!-- 定义显示图片整体的ImageView -->

    <ImageView
        android:id="@+id/image1"
        android:layout_width="fill_parent"
        android:layout_height="240px"
        android:scaleType="fitCenter"
        android:src="@drawable/yy01" />
<!-- 定义显示局部图片的imageView -->
    <ImageView
        android:id="@+id/image2"
        android:layout_width="120dp"
        android:layout_height="120dp"
        android:layout_marginTop="10dp"
        android:background="#00f" />

</LinearLayout>

时间: 2024-10-29 10:46:12

Android---21---ImageView的相关文章

Android的ImageView中的android:src和android:background的区别

http://www.androidren.com/index.php?qa=301&qa_1=android的imageview中的android-src和android-background的区别 有下面几个不同点: 1.src是前景foreground.background是后景background. 2.src是显示内容,background是背景. 3.background是所有view都有的属性,而src是ImageView特有的,它会受到android:scaleType的影响,而

Android摘要ImageView的scaleType属性

Android在ImageView的scaleType有8一个选项 1 matrix不正确图像放大,原来自view在左上角绘制图片(片不变形): 2 fitXY将图片所有绘制到view中,可是图片会变形:(图片变形.充满view) 3 fitStart.fitCenter.fitEnd三个属性会选择图片的较长的边为基准对图片进行缩放处理,正由于如此,图片不会全然充满view,不同之处在于图片在view中绘制的锚点不同:(图片不变形.不能充满view) 4 center不正确图片进行缩放处理,选取

怪胎:Android开发ImageView图片无法显示

今天碰到一个非常奇怪的问题: 在Android中ImageView无法显示加载的本地SDCard图片. 具体过程是:先调用本地照相机程序摄像,然后将拍摄的图片加载在ImageView中显示. [java] view plaincopyprint? public class ActiEnvi extends Activity   { static final String TAG = "ActiEnvi"; private static final int REQ_CODE_CAMERA

Android自定义imageview可对图片进行多点缩放和拖动

package com.msstudent.view; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Matrix; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; i

【Android】 ImageView.ScaleType设置图解

ImageView的Scaletype决定了图片在View上显示时的样子,如进行何种比例的缩放,及显示图片的整体还是部分,等等. 设置的方式包括: 1. 在layout xml中定义android:scaleType="CENTER" 2. 或在代码中调用imageView.setScaleType(ImageView.ScaleType.CENTER); 接下来,将对ScaleType的值和对应的显示效果用最直观的方式--真图演示的方法,来进行说明. 首先,是测试使用的原始图片: (

android获得ImageView图片的等级

android获得ImageView图片的等级问题 要实现的功能如下图,点击分享能显示选中与不选中状态,然后发送是根据状态来实现具体分享功能. 在gridview中有5个子项,每个子元素都有两张图片A,B的level设置分别为0,1:点击图片使图片AB切换,前题是要能知道当前图片的等级.但这里只有设置等级的方法,设置图片的等级setImageLevel(1); Debug时能看到当前子元素的图片等级,如下: 不能获得当前等级,只能更换思路:定义一个数组,对应每个子元素的状态 final int[

Android使用ImageView显示网络图片

本案例使用ImageView 简单的实现了网络图片的调用.当中注意事项.由于用到了网络,这里採用了HttpClient方法訪问网络联接,关于怎样使用,可參照文章?Android中使用HttpClient实现HTTP通信效果?,因此.须要注意配置网络权限问题.以及须要使用新线程及Handler来更新Activity,不然会直接报错Not Main Thread 看实例: MainActivity.java package com.example.imageview; import android.

Android -- 自定义ImageView(圆形头像)

1.  原图      -->    2.  自定义的控件类 package com.chaowen.yixin; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Pa

Android - 设置ImageView为全屏显示

设置ImageView为全屏显示 本文地址: http://blog.csdn.net/caroline_wendy ImageView默认会适应屏幕大小, 如果想使用全屏填充, 则需要使用: android:scaleType="fitXY" android:scaleType="matrix" 注意android:scaleType的参数选择. 参考: http://developer.android.com/reference/android/widget/I

Android自定义ImageView圆形头像

效果图: 代码如下: RoundImageView.java import cn.comnav.evaluationsystem.R; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.graphics.Canvas; import a