简单的图片查看器---ImageView的学习
2016-05-19 23:07
183 查看
当你的才华还撑不起你的野心时,就应该静下心来学习; 当你的能力还驾驭不了你的目标时,就应该沉下心来历练…
简单的图片查看器—ImageView的学习
package com.crazyit.ui.imageviewdemo; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.widget.Button; import android.widget.ImageView; /** * 简单图片浏览器----imageview的学习 */ public class ImageviewActivity extends Activity { Button btnMinus, btnPlus, next; ImageView image1, image2; //定义一个图片资源的数组 private int[] images = new int[]{R.drawable.lijiang, R.drawable.qiao, R.drawable.shuangta, R.drawable.shui, R.drawable.xiangbi}; //定义默认显示图片 int currentImg = 2; //定义图片的原始透明度 private int alpha = 255; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_imageview); initView(); next.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //控制imageview 显示下一张图片 image1.setImageResource(images[++currentImg % images.length]); } }); //定义显示图片透明度的方法 View.OnClickListener listener = new View.OnClickListener() { @Override public void onClick(View v) { if (v == btnPlus) { alpha+=20; } if (v==btnMinus){ alpha-=20; } if (alpha>255){ alpha=255; } if (alpha<0){ alpha=0; } //改变图片透明度 image1.setAlpha(alpha); // image1.setImageAlpha(alpha); } }; //为;两个按钮添加监听事件 btnPlus.setOnClickListener(listener); btnMinus.setOnClickListener(listener); //为第一个图片添加触摸监听事件 image1.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { BitmapDrawable bitmapDrawable = (BitmapDrawable) image1.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; } //显示图片的指定区域 image2.setImageBitmap(Bitmap.createBitmap(bitmap,x,y,120,120)); image2.setAlpha(alpha); return false; } }); } private void initView() { btnMinus = (Button) findViewById(R.id.btnMinus); btnPlus = (Button) findViewById(R.id.btnPlus); next = (Button) findViewById(R.id.next); image1 = (ImageView) findViewById(R.id.image1); image2 = (ImageView) findViewById(R.id.image2); } }
布局文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_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.crazyit.ui.imageviewdemo.ImageviewActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_gravity="center" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="+" android:textSize="24sp" android:id="@+id/btnPlus" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="-" android:textSize="24sp" android:id="@+id/btnMinus" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="next" android:textSize="24sp" android:id="@+id/next" /> </LinearLayout> <!--定义显示图片整体的 Imageview--> <ImageView android:id="@+id/image1" android:layout_width="match_parent" android:layout_height="240px" android:src="@drawable/shuangta" android:scaleType="fitCenter" /> <!--定义显示局部细节的Imageview--> <ImageView android:id="@+id/image2" android:layout_width="400px" android:layout_height="400px" android:background="#00f" android:layout_gravity="center" android:layout_marginTop="10dp" /> </LinearLayout>
相关文章推荐
- ICMP
- jmeter(3)简单的HTTP请求(非录制)
- QT类中keyPressEvent函数的重写
- python实现进度条--主要用在上传下载文件
- python实现进度条--主要用在上传下载文件
- MVP模式
- EntityFramework Code-First 简易教程(六)-------领域类配置之DataAnnotations
- python实现进度条--主要用在上传下载文件
- 要注意php for中变量的清空
- 勿忘初心!!!
- C++虚基类的实现机制:笔记
- poj 3525 凸多边形多大内切圆
- poj 1279 半平面交核面积
- 为结构体分配额外存储空间的方法
- Android Launcher分析和修改4——初始化加载数据
- JavaMai——邮箱验证用户注册
- 这些HTML、CSS知识点,面试和平时开发都需要 No5-No7
- 为什么修改hosts不立即生效?--浏览器DNS缓存机制分析 【转】
- DA1458x使用之第四篇——ADC
- ipvsadm-1 nat 模式web负载