/** * TGABitmapViewerActivity.java * * Copyright (c) 2014 Kenji Sasaki * Released under the MIT license. * https://github.com/npedotnet/TGAReader/blob/master/LICENSE * * English document * https://github.com/npedotnet/TGAReader/blob/master/README.md * * Japanese document * http://3dtech.jp/wiki/index.php?TGAReader * */ package com.example.tgabitmapviewer; import java.io.IOException; import java.io.InputStream; import android.annotation.SuppressLint; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.os.Bundle; import android.widget.GridLayout; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ScrollView; import android.widget.TextView; @SuppressLint("NewApi") public class TGABitmapViewerActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); GridLayout layout = new GridLayout(this); ScrollView scroll = new ScrollView(this); scroll.addView(layout); setContentView(scroll); try { String [] list = getAssets().list("images"); // count tga images int count = 0; for(int i=0; i<list.length; i++) { if(list[i].endsWith(".tga")) count++; } layout.setColumnCount(3); layout.setRowCount(count/3); // create tga image view for(int i=0; i<list.length; i++) { if(list[i].endsWith(".tga")) { LinearLayout view = createTGAView(list[i]); if(view != null) layout.addView(view); } } } catch (IOException e) { e.printStackTrace(); } } private LinearLayout createTGAView(String name) { ImageView image = createTGAImageView("images/"+name); if(image != null) { LinearLayout layout = new LinearLayout(this); layout.setOrientation(LinearLayout.VERTICAL); layout.addView(image); TextView label = new TextView(this); label.setText(name); label.setMaxWidth(128); label.setPadding(8, 8, 0, 0); layout.addView(label); return layout; } return null; } private ImageView createTGAImageView(String path) { Bitmap bitmap = createTGABitmap(path); if(bitmap != null) { ImageView imageView = new ImageView(this); imageView.setImageBitmap(bitmap); imageView.setAdjustViewBounds(true); imageView.setMaxWidth(128); imageView.setMaxHeight(128); imageView.setPadding(8, 8, 0, 0); return imageView; } return null; } private Bitmap createTGABitmap(String path) { Bitmap bitmap = null; try { InputStream is = getAssets().open(path); byte [] buffer = new byte[is.available()]; is.read(buffer); is.close(); int [] pixels = TGAReader.read(buffer, TGAReader.ARGB); int width = TGAReader.getWidth(buffer); int height = TGAReader.getHeight(buffer); bitmap = Bitmap.createBitmap(pixels, 0, width, width, height, Config.ARGB_8888); } catch(Exception e) { e.printStackTrace(); } return bitmap; } }