Android图片转换器代码分享

所属分类: 软件编程 / java 阅读数: 40
收藏 0 赞 0 分享

MainActivity.java

package com.zhang.showPhoto;
 
import android.app.ActionBar.LayoutParams;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.ViewSwitcher.ViewFactory;
 
public class MainActivity extends Activity {
   
  private int[] imagId=new int[]{
      R.drawable.img01,R.drawable.img02,R.drawable.img03,R.drawable.img04,
      R.drawable.img05,R.drawable.img06,R.drawable.img07,R.drawable.img08,
      R.drawable.img09,R.drawable.img10
    };
  private int index=0;
  private ImageSwitcher imageSwitcher;
  private Button up,down;
   
 
  @Override
  protected void onCreate(Bundle savedInstanceState) {
   
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
     
    up=(Button) findViewById(R.id.bt1);
    down=(Button) findViewById(R.id.bt2);
     
   
    imageSwitcher=(ImageSwitcher) findViewById(R.id.imagSw1);
    imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in));
    imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_out));
    imageSwitcher.setFactory(new ViewFactory() {
       
     
      public View makeView() {
        ImageView imageView = new ImageView(MainActivity.this);
        imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
        imageView.setLayoutParams(new ImageSwitcher.LayoutParams(
            LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT
            ));
        return imageView;
      }
    });
     
    imageSwitcher.setImageResource(imagId[index]);
     
    up.setOnClickListener(new OnClickListener() {
       
      @Override
      public void onClick(View v) {
        if(index>0){
          index--;
        }else{
          index=imagId.length-1;
        }
        imageSwitcher.setImageResource(imagId[index]);
      }
    });
     
    down.setOnClickListener(new OnClickListener() {
       
      @Override
      public void onClick(View v) {
        if(index<imagId.length-1){
          index++;
        }else{
          index=0;
        }
        imageSwitcher.setImageResource(imagId[index]);
      }
    });
   
  }
   
 
}

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:background="@drawable/bg1"
  android:id="@+id/llayout"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:gravity="center"
  android:orientation="horizontal" >
 
  <Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="上一张"
    android:id="@+id/bt1"
    />
  <ImageSwitcher
     android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/imagSw1"
    android:layout_gravity="center"
    />
   <Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="下一张"
    android:id="@+id/bt2"
    />
 
</LinearLayout>

再来看一段代码

    // 获取图片的宽高
    BitmapFactory.Options opt = new BitmapFactory.Options();
    opt.inJustDecodeBounds = true;
    try{
      bitmapIn = BitmapFactory.decodeFile(Puzzle.user.CUSTOM_IMAGE[customImage], opt);
    }catch(Exception e){
      if(D) Log.d(TAG,"error");
      return;
    }
    int in_w=opt.outWidth,in_h=opt.outHeight;
     
    // 获取imageview的尺寸 注意imageview的宽高比要与原图相同 否则需要另行计算
    full_w = imageview.getWidth()
    full_h = getHeight()
 
    // 计算缩放比例 带有四舍五入
    int Size_rate=(in_w*in_h*10)/(full_w*full_h);
    if(Size_rate>10){
      Size_rate+=5; 
      Size_rate/=10;
    }else{
      Size_rate=1;
    }
 
    // 重新设置opt 读取图片文件
    opt.inSampleSize=Size_rate;
    opt.inJustDecodeBounds = false;
    opt.inScaled = false;
 
    opt.outWidth=full_w;
    opt.outHeight=full_h;
    bitmapIn = BitmapFactory.decodeFile(Puzzle.user.CUSTOM_IMAGE[customImage], opt);}

更多精彩内容其他人还在看

Springmvc restful配置遇到的小坑

本文是小编给大家带了的Springmvc restful配置遇到的小小坑,小编给大家带来了问题原因及解决办法,非常不错,具有参考借鉴价值,感兴趣的朋友一起看下吧
收藏 0 赞 0 分享

Java中的匿名内部类小结

java内部类分为: 成员内部类、静态嵌套类、方法内部类、匿名内部类。这篇文章主要介绍了Java中的匿名内部类的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

Java的云打印Lodop

这篇文章主要介绍了Java的云打印Lodop 的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Java线程池框架核心代码解析

这篇文章主要针对Java线程池框架核心代码进行详细解析,分析Java线程池框架的实现ThreadPoolExecutor,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Java 交换两个变量的数值实现方法

下面小编就为大家带来一篇Java 交换两个变量的数值实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

全面了解JAVA_BaseDAO数据处理类

下面小编就为大家带来一篇全面了解JAVA_BaseDAO数据处理类。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

java、python、JavaScript以及jquery循环语句的区别

本篇文章主要介绍java、python、JavaScript以及jquery的循环语句的区别,这里整理了它们循环语句语法跟示例,以便大家阅读,更好的区分它们的不同
收藏 0 赞 0 分享

基于JDBC封装的BaseDao(实例代码)

下面小编就为大家带来一篇基于JDBC封装的BaseDao(实例代码)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

简单通用JDBC辅助类封装(实例)

下面小编就为大家带来一篇简单通用JDBC辅助类封装(实例)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

浅谈java线程中生产者与消费者的问题

下面小编就为大家带来一篇浅谈java线程中生产者与消费者的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享
查看更多