Drawable,Bitmapの違い

2699 ワード

Bitmap-はビットマップと呼ばれ、一般的なビットマップのファイル形式の接尾辞はbmpであり、もちろんエンコーダにもRGB 565、RGB 8888などがたくさんあります.画素単位の表示オブジェクトとしての実行効率は高いが、記憶効率が低いという欠点も明らかである.ストレージオブジェクトとして理解したほうがいいです.
Drawable-Androidフラットで一般的なグラフィックオブジェクトとして、GIF、PNG、JPGなどの一般的なフォーマットの画像をロードすることができます.BMPもサポートされています.もちろん、グラデーション、グラフィックなどの高度な可視化オブジェクトも提供されています.
Canvas-キャンバスという名前で、Bitmap、GL、またはPathパスを管理するために様々な方法を使用する処理プロセスと見なすことができます.また、Matrixマトリクスクラスに合わせて画像の回転、スケールなどの操作を行うことができます.また、Canvasクラスは剪断、選択などの操作も提供します.
Paint-ブラシ、ブラシなどの絵を描くツールと見なすことができます.彼は各グラフィックツールのフォント、色、スタイルを管理しています.
1画像はDrawableファイルにあります
   //   Drawable 
        //drawable
        Drawable drawable = getResources().getDrawable(R.drawable.personal_othericon);
        
        //bitmap
        Resources resources = getResources();       
        Bitmap bitmap = BitmapFactory.decodeResource(resources, R.drawable.personal_othericon);

2画像はAssetsファイルにあります
   //    Assets 
        AssetManager assets = getAssets();
        try {
            InputStream is = assets.open("personal");

            //drawable
            Drawable da = Drawable.createFromStream(is, null);

            //bitmap
            Bitmap bitmap1 = BitmapFactory.decodeStream(is);


        } catch (IOException e) {
            e.printStackTrace();
        }

Android Studioにassetsディレクトリを追加し、ディレクトリの場所を
[java]  view plain
 copy
 
XXX\src\main\assets  
XXXはあなたのプロジェクトのパスを代表して、assetsはsrcmainディレクトリの下に置きます.

1 SDカードパス
 //SD     
        String s = Environment.getExternalStorageDirectory().toString();
        System.out.println("content :"+s);

2 SDカード搭載監視:
   //SD     
        String externalStorageState = Environment.getExternalStorageState();
        if(externalStorageState.equals(Environment.MEDIA_MOUNTED)){

            System.out.println(" SD !!!");
        }
        else{
            System.out.println(" SD !!!");
        }

3フォルダtempfileの作成
File destDir = new File(s+"/tempfile"); //                      
        if(!destDir.exists()) {
            destDir.mkdir();
        }

4 SDカードからBitmapを取得する
ImageView iv; 
String fileName = "/data/data/com.test/aa.png; 
Bitmap bm = BitmapFactory.decodeFile(fileName); 
iv.setImageBitmap(bm);

5 SDカードからDrawableを取得する
Bitmap image = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
BitmapDrawable bitmapDrawable = new BitmapDrawable(image);
imageView.setImageDrawable(bitmapDrawable);