【Android學習】ImageDecoder


最近在學習Android,參考《瘋狂Android講義 第4版》

public class MainActivity extends AppCompatActivity {
    private TextView textView;
    private ImageView imageView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = findViewById(R.id.showtext);
        imageView = findViewById(R.id.show);

        ImageDecoder.Source source = null;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
            source = ImageDecoder.createSource(getResources(),R.drawable.fat_po);
            ImageDecoder.OnHeaderDecodedListener listener =
                    new ImageDecoder.OnHeaderDecodedListener(){
                        @Override
                        public void onHeaderDecoded(@NonNull ImageDecoder decoder, @NonNull ImageDecoder.ImageInfo info, @NonNull ImageDecoder.Source source) {
                            textView.setText("Size: "+info.getSize().getWidth()+" "+
                                    info.getSize().getHeight());
                            decoder.setTargetSize(600,580);
                        }
                    };
            try {
                Drawable drawable = ImageDecoder.decodeDrawable(source,listener);
                imageView.setImageDrawable(drawable);
                if (drawable instanceof AnimatedImageDrawable)
                    ((AnimatedImageDrawable) drawable).start();
            } catch (IOException e) {
                e.printStackTrace();
            }

        }

    }
}

ImageDecoder 是
一種用於轉換編碼圖像類(如PNGJPEGWEBPGIF,或HEIF)轉換成DrawableBitmap對象。從Android9開始支持。

Alt+Enter 是Android studio的快捷鍵,可以對代碼的提示建議,進行快速修改。

效果如下圖,可以顯示GIF動圖

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM