@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout. activity_main); mLinearLayout = (LinearLayout) findViewById(R.id.mygallery); File externalDir = Environment. getExternalStorageDirectory(); String photosPath = externalDir.getAbsolutePath() + "/test/"; File photosFile = new File(photosPath); for (File photoFile : photosFile.listFiles()) { mLinearLayout.addView(getImageView(photoFile.getAbsolutePath())); } } private View getImageView(String absolutePath) { Bitmap bitmap = decodeBitmapFromFile(absolutePath, 200, 200);LinearLayout layout = new LinearLayout(getApplicationContext());layout.setLayoutParams( new LayoutParams(250, 250));layout.setGravity(Gravity. CENTER); ImageView imageView = new ImageView(this); imageView.setLayoutParams( new LayoutParams(200,200)); imageView.setScaleType(ImageView.ScaleType. CENTER_CROP); imageView.setImageBitmap(bitmap); layout.addView(imageView); return layout; } private Bitmap decodeBitmapFromFile(String absolutePath, int reqWidth, int reqHeight) {Bitmap bm = null; // First decode with inJustDecodeBounds=true to check dimensions final BitmapFactory.Options options = new BitmapFactory.Options(); options. inJustDecodeBounds = true ; BitmapFactory. decodeFile(absolutePath, options); // Calculate inSampleSize options. inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight); // Decode bitmap with inSampleSize set options. inJustDecodeBounds = false ; bm = BitmapFactory. decodeFile(absolutePath, options); return bm; } private int calculateInSampleSize(Options options, int reqWidth, int reqHeight) { // Raw height and width of image final int height = options.outHeight; final int width = options.outWidth; int inSampleSize = 1;if (height > reqHeight || width > reqWidth) { if (width > height) { inSampleSize = Math. round((float)height / ( float)reqHeight); } else { inSampleSize = Math. round((float)width / ( float)reqWidth); } } return inSampleSize; } 要显示的图片放在外置SDCard中test目录下,上面的示例程序只是显示了一张张大图片的缩略版本,对这方面不懂的可以参看:new Handler().postDelayed(new Runnable() {@Overridepublic void run() { // 水平直接滚动800px,如果想效果更平滑可以使用smoothScrollTo(int x, int y) hsv.scrollTo(800, 0);} }, 2000); 效果图:
以上就是本文的全部内容,希望对大家学习Android软件编程有所帮助。