最近在學習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 是一種用於轉換編碼圖像類(如PNG,JPEG,WEBP,GIF,或HEIF)轉換成Drawable或Bitmap對象。從Android9開始支持。
Alt+Enter 是Android studio的快捷鍵,可以對代碼的提示建議,進行快速修改。
效果如下圖,可以顯示GIF動圖

