android脚步---简单图片浏览器改变图像透明度

图片浏览器调用ImageView的setAlpha方法来实现改变图片透明度。

main.xml文件如下:三个按钮,两个imageview,,界面定义了两个ImageView,一个是显示局部图片的ImageView,android:scaleType="fitCenter表明图片会保持横纵比缩放,并将缩放后图片放在该imageview中央。

<?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" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

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

        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="减小透明度" />

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

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#0000ff"
        android:scaleType="fitCenter"
        android:src="@drawable/shuangta" />
    <!-- 定义显示局部图片的ImageView -->

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:background="#0000ff" />

</LinearLayout>

设置监听器,按钮改变图片的Alpha值,在第一个imageview上添加ontouchlistener,发生触摸事件时,程序从原图取出相应部分图片,显示在第二个imageview中。

package com.example.imageview;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
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;

public class MainActivity extends Activity {
    // 定义一个访问图片的数组
    int[] images = new int[] { R.drawable.lijiang, R.drawable.qiao,
            R.drawable.shuangta, R.drawable.shui, R.drawable.xiangbi,
            R.drawable.ic_launcher, };
    // 定义当前显示的图片
    int currentImage = 2;
    // 定义图片的初始透明度
    private int alpha = 255;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final Button plusButton = (Button) findViewById(R.id.button1);
        final Button minuxButton = (Button) findViewById(R.id.button2);
        final Button nextButton = (Button) findViewById(R.id.button3);

        final ImageView imageview1 = (ImageView) findViewById(R.id.imageView1);
        final ImageView imageview2 = (ImageView) findViewById(R.id.imageView2);

        // 定义查看下一张图片的时间监听器
        nextButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                if (currentImage >= 5) {
                    currentImage = -1;
                }
                BitmapDrawable bitmap = (BitmapDrawable) imageview1
                        .getDrawable();
                // 如果图片还没有回收,先强制回收图片
                if (!bitmap.getBitmap().isRecycled()) {
                    bitmap.getBitmap().recycle();
                }
                // 改变ImageView的图片
                imageview1.setImageBitmap(BitmapFactory.decodeResource(
                        getResources(), images[++currentImage]));
            }
        });

        // 定义改变图片透明度的方法
        OnClickListener listener = new OnClickListener() {

            @Override
            public void onClick(View v) {
                if (v == plusButton) {
                    alpha += 20;
                }
                if (v == minuxButton) {
                    alpha -= 20;
                }
                if (alpha > 255) {
                    alpha = 255;
                }
                if (alpha <= 0) {
                    alpha = 0;
                }
                // 改变图片的透明度
                imageview1.setAlpha(alpha);

            }
        };

        // 为2个按钮添加监听器
        plusButton.setOnClickListener(listener);
        minuxButton.setOnClickListener(listener);
        imageview1.setOnTouchListener(new OnTouchListener() {

            @Override
            public boolean onTouch(View arg0, MotionEvent arg1) {
                // TODO Auto-generated method stub
                BitmapDrawable bitmapDeaw = (BitmapDrawable) imageview1
                        .getDrawable();
                // 获取第一个图片显示框中的位图
                Bitmap bitmap = bitmapDeaw.getBitmap();
                double scale = bitmap.getWidth();
                // 或许需要显示图片的开始点
                int x = (int) (arg1.getX() * scale);
                int y = (int) (arg1.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;
            }
        });
    }

}
时间: 2024-12-07 19:17:52

android脚步---简单图片浏览器改变图像透明度的相关文章

简单图片浏览器

在设置开关灯的时候出了一点小问题,默认UISwitch为on当用if(sender.on)做判断时,第一次点击无效.后来调试默认为on,当改变状态时sender.on返回的是0,再次点击返回的是1.判断一个UISwitch为off可以用!sender.on 用到加载本地目录下的文件 //获取所有描述(通过解析plist文件来创建数组对象,比如传入文件的全路径) NSBundle *bundle = [NSBundle mainBundle]; //获取文件的全路径 NSString *path

[Android] 对自定义图片浏览器经常内存溢出的一些优化

首先关于异步加载图片可以参见 夏安明 的博客:http://blog.csdn.net/xiaanming/article/details/9825113 这篇文章最近有了新的更改,大概看了一下,内容更完善了.而我参考他之前的代码,发现了很多与内存有关的问题,这里记录一下发现的问题和解决方法. 本文地址:http://www.cnblogs.com/rossoneri/p/4284478.html 首先上个功能图: 1.本地图片浏览器做成对话框的形式,可以显示文件夹 2. 图片支持多选 3. 图

C# 系统应用之ListView实现简单图片浏览器

最近有同学问我如何使用ListView加载图片列表,前面在"C#系统应用"中TreeView+ListView+ContextMenuStrip控件实现树状图显示磁盘目录,并在ListView中显示文件的详细信息.这里准备简单介绍下给同学讲述的如何使用ListView+ImageList控件实现简单的图片浏览器知识.        第一步 设计界面框架如下图所示,同时添加ImageList控件(不可见) 注意:设置ListView控件的Anchor属性为Top,Bottom,Right

Android简单图片浏览器

效果如下:            代码编写如下: Crize_demo\app\src\main\res\layout\activity_main.xml 1 <!--定义一个线性布局--> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="http://schemas.android.com/tools" 4 andr

Android 简单图片浏览器 读取sdcard图片+形成缩略图+Gallery

1.读取SD卡上面的图片信息 //想要的返回值所在的列 String[] projection = { MediaStore.Images.Thumbnails._ID}; //图片信息存储在 android.provider.MediaStore.Images.Thumbnails数据库 //快速查询数据库中的图片对应存放路劲 Cursor cursor = managedQuery( MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, pro

UI基础篇-iOS中简单图片浏览器的实现

1 // 2 3 // HYViewController.m 4 5 // 01-图片浏览器复习 6 7 // 8 9 // Created by apple on 15-4-10. 10 11 // Copyright (c) 2015年 apple. All rights reserved. 12 13 // 14 15 16 17 #import "HYViewController.h" 18 19 20 21 @interface HYViewController () 22

Ubuntu上Qt之简单图片浏览器

>>功能: (1)图片切换浏览,上一张/下一张. (2)图片放大.缩小.包括两种机制:鼠标滚轮和按钮放大/缩小. (3)图片自动循环播放.点击播放后,其他操作均无效,直至点击暂停. (4)在图片被放大/缩小后,点击还原或者切换图片时,自动恢复为默认大小. >>最终效果: (1)点击播放按钮: (2)暂停后,点击下一张: (3)点击放大(或鼠标滚轮往前滚动): (4)点击还原: (5)点击缩小(或鼠标滚轮往后滑动): (6)点击上一张: (7)点击旋转: (8)点击缩小(或鼠标滚轮往

android脚步---图片浏览

简单的图片浏览器,实现图像显示与点击切换下一张 首先在main.xml里面定义一个简单的线性布局容器. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/root" android:orientation

自定义Gallery控件实现简单3D图片浏览器

本篇文章主要介绍如何使用自定义的Gallery控件,实现3D效果的图片浏览器的效果. 话不多说,先看效果. 上面是一个自定义的Gallery控件,实现倒影和仿3D的效果,下面是一个图片查看器,点击上面的小图片,可以在下面查看大图片. 下面重点说一下,实现图片查看器的思路. 1.手机中图片路径的获取 首先,先不管图片如何展示,如果我们想实现图片查看器的功能,我们首先需要做的是获取到所有的图片的路径信息,只有这样,我们才能实现对图片的查看. 我们可以使用下面的代码实现 private List<St