20
20
import android .widget .ImageView ;
21
21
import android .widget .ProgressBar ;
22
22
import java .io .IOException ;
23
+ import java .util .ArrayList ;
23
24
import java .util .Objects ;
24
25
import org .pytorch .executorch .EValue ;
25
26
import org .pytorch .executorch .Module ;
@@ -33,6 +34,9 @@ public class MainActivity extends Activity implements Runnable {
33
34
private Module mModule = null ;
34
35
private String mImagename = "corgi.jpeg" ;
35
36
37
+ private String [] mImageFiles ;
38
+ private int mCurrentImageIndex = 0 ;
39
+
36
40
// see http://host.robots.ox.ac.uk:8080/pascal/VOC/voc2007/segexamples/index.html for the list of
37
41
// classes with indexes
38
42
private static final int CLASSNUM = 21 ;
@@ -51,10 +55,29 @@ private void populateImage() {
51
55
}
52
56
}
53
57
58
+ private void populateImagePathFromAssets () {
59
+ try {
60
+ String [] allFiles = getAssets ().list ("" );
61
+ ArrayList <String > imageList = new ArrayList <>();
62
+ for (String file : allFiles ) {
63
+ if (file .endsWith (".jpg" ) || file .endsWith (".jpeg" ) || file .endsWith (".png" )) {
64
+ imageList .add (file );
65
+ }
66
+ }
67
+ mImageFiles = imageList .toArray (new String [0 ]);
68
+ mCurrentImageIndex = 0 ;
69
+ mImagename = mImageFiles .length > 0 ? mImageFiles [0 ] : null ;
70
+ } catch (IOException e ) {
71
+ Log .e ("ImageSegmentation" , "Error listing assets" , e );
72
+ finish ();
73
+ }
74
+ }
75
+
54
76
@ Override
55
77
protected void onCreate (Bundle savedInstanceState ) {
56
78
super .onCreate (savedInstanceState );
57
79
setContentView (R .layout .activity_main );
80
+ populateImagePathFromAssets ();
58
81
59
82
try {
60
83
mBitmap = BitmapFactory .decodeStream (getAssets ().open (mImagename ), null , null );
@@ -73,13 +96,13 @@ protected void onCreate(Bundle savedInstanceState) {
73
96
buttonNext .setOnClickListener (
74
97
new View .OnClickListener () {
75
98
public void onClick (View v ) {
76
- if (Objects .equals (mImagename , "corgi.jpeg" )) {
77
- mImagename = "dog.jpg" ;
78
- } else if (Objects .equals (mImagename , "dog.jpg" )) {
79
- mImagename = "deeplab.jpg" ;
80
- } else {
81
- mImagename = "corgi.jpeg" ;
99
+ if (mImageFiles == null || mImageFiles .length == 0 ) {
100
+ // No images available
101
+ return ;
82
102
}
103
+ // Move to the next image, wrap around if at the end
104
+ mCurrentImageIndex = (mCurrentImageIndex + 1 ) % mImageFiles .length ;
105
+ mImagename = mImageFiles [mCurrentImageIndex ];
83
106
populateImage ();
84
107
}
85
108
});
0 commit comments