牛骨文教育服务平台(让学习变的简单)
博文笔记

Bitmap实例

创建时间:2016-12-21 投稿人: 浏览次数:324
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageView;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;

public class MainActivity extends AppCompatActivity {
    Bitmap bmp;
    ImageView iv;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
//        createBitmap(int width, int height, Bitmap.Config config)
//        用于创建一个指定宽度和高度的新的Bitmap对象
        bmp = Bitmap.createBitmap(200, 200, Bitmap.Config.RGB_565);
        iv = (ImageView) findViewById(R.id.iv);
        //200*200 = 40000 = 40b 1024
        iv.setImageBitmap(bmp);
    }
    public void save(View v) {
        //jpg没有透明度
        String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/1.png";
        FileOutputStream fos = null;
        try {
            fos = new FileOutputStream(path);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
//        compress(Bitmap.CompressFormat format, int quality, OutputStream
//        stream)
//        用于将Bitmap对象压缩为指定格式并保存到指定的文件输出流中
        bmp.compress(Bitmap.CompressFormat.PNG, 100, fos);
        try {
            fos.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public void fromFile(View v) {
        //需要读取权限
        //String sdpath = Environment.getExternalStorageDirectory() + "/"; 得到sdcard路径
        String fileName = Environment.getExternalStorageDirectory().getAbsolutePath() + "/fbb.jpg";
        Bitmap bmp = BitmapFactory.decodeFile(fileName);
        iv.setImageBitmap(bmp);
    }
    //使用Image框架
    public void fromStream(View v) {
        //从网络
        //域名
        new Thread() {
            @Override
            public void run() {
                URL url = null;
                try {
                    url = new URL("https://img.alicdn.com/tps/TB1l033MVXXXXbrXVXXXXXXXXXX-520-280.jpg");
                } catch (MalformedURLException e) {
                    e.printStackTrace();
                }
                try {
                    //1.子线程无法刷新UI
                    //2.主线程无法请求网络
                    InputStream is = url.openStream();
                    //decodeStream(InputStream is) 用于从指定的输入流中解析、创建Bitmap对象
                    final Bitmap bmp = BitmapFactory.decodeStream(is);
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            iv.setImageBitmap(bmp);
                        }
                    });
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }.start();
    }
}


    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.INTERNET" />
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。