Android图片放大修改代码

来源:互联网 发布:ubuntu安装时手动分区 编辑:程序博客网 时间:2024/05/05 06:08

package com.jinyan.TestImage;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.Log;
import android.widget.Button;
import android.widget.ImageView;

public class TestImage extends Activity {
        /** Called when the activity is first created. */

        private static final String tag = "TestImage.............";
       
        String imageUrl = "http://i.pbase.com/o6/92/229792/1/80199697.uAs58yHk.50pxCross_of_the_Knights_Templar_svg.png";
        Bitmap bmImg;
        ImageView imView;

        Button button1;
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);
                imView = (ImageView) findViewById(R.id.imview);
                imView.setImageBitmap(returnBitMap(imageUrl));

                Bitmap bitmap = returnBitMap(imageUrl);

                imView.setImageDrawable(resizeImage(bitmap, 600, 600));
        }
       
        public Bitmap returnBitMap(String url) {
                URL myFileUrl = null;
                Bitmap bitmap = null;
                try {
                        myFileUrl = new URL(url);
                } catch (MalformedURLException e) {
                        e.printStackTrace();
                }
                try {
                        HttpURLConnection conn = (HttpURLConnection) myFileUrl
                                        .openConnection();
                        conn.setDoInput(true);
                        conn.connect();
                        InputStream is = conn.getInputStream();
                        bitmap = BitmapFactory.decodeStream(is);
                        is.close();
                } catch (IOException e) {
                        e.printStackTrace();
                }
                Log.v(tag,bitmap.toString());
               
                return bitmap;
        }

        public static Drawable resizeImage(Bitmap bitmap, int w, int h) {

                // load the origial Bitmap
                Bitmap BitmapOrg = bitmap;

                int width = BitmapOrg.getWidth();
                int height = BitmapOrg.getHeight();
                int newWidth = w;
                int newHeight = h;
               
                Log.v(tag,String.valueOf(width));
                Log.v(tag,String.valueOf(height));
               
                Log.v(tag,String.valueOf(newWidth));
                Log.v(tag,String.valueOf(newHeight));

                // calculate the scale
                float scaleWidth = ((float) newWidth) / width;
                float scaleHeight = ((float) newHeight) / height;

                // create a matrix for the manipulation
                Matrix matrix = new Matrix();
                // resize the Bitmap
                matrix.postScale(scaleWidth, scaleHeight);
                // if you want to rotate the Bitmap
                // matrix.postRotate(45);

                // recreate the new Bitmap
                Bitmap resizedBitmap = Bitmap.createBitmap(BitmapOrg, 0, 0, width,
                                height, matrix, true);

                // make a Drawable from Bitmap to allow to set the Bitmap
                // to the ImageView, ImageButton or what ever
                return new BitmapDrawable(resizedBitmap);

        }
       
}