首页 > 编程 > Java > 正文

Android图片转换器代码分享

2019-11-26 14:53:59
字体:
来源:转载
供稿:网友

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);}

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表