Saturday, July 17, 2010

[android-developers] Re: Image viewers on android phones not always the best experience?

I just use an ImageView and resize the image before I display it. Here
is my layout:

<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="centerInside"
android:src="@drawable/wait"
/>

private Display display;

/* in onCreate */
display = ((WindowManager)
getSystemService(WINDOW_SERVICE)).getDefaultDisplay();

/* add the image to the ImageView */
String[] myImageWithPath = "/sdcard/DCIM/image.jpg";

ImageView image = (ImageView)findViewById(R.id.image);
image.setImageDrawable(getScaledDrawable(myImageWithPath));


private int getScreenWidth() {
int width = display.getWidth();
return width;
}

private int getScreenHeight() {
int height = display.getHeight();
return height;
}

private Drawable getScaledDrawable(String imagePath) {
Bitmap scaledBitmap = null;
BitmapFactory.Options options=new BitmapFactory.Options();
options.inSampleSize = 2;
Bitmap origBitmap = BitmapFactory.decodeFile(imagePath, options);

int oWidth = origBitmap.getWidth();
int oHeight = origBitmap.getHeight();

int screenwidth = getScreenWidth();
int screenheight = getScreenHeight();

/* Scale the image according to orientation */
if ((oWidth > screenwidth) && (oHeight > screenheight)) {
switch (display.getOrientation()) {
case PORTRAIT:
int factor = screenwidth / oWidth;
int new_height = factor * oHeight;
scaledBitmap = Bitmap.createScaledBitmap(origBitmap,screenwidth,
new_height, true);
break;
case LANDSCAPE:
factor = screenheight / oHeight;
int new_width = factor * oWidth;
scaledBitmap = Bitmap.createScaledBitmap(origBitmap,new_width,
screenheight, true);
break;
}
}
else {
/* Image doesn't need to be resized */
return Drawable.createFromPath(imagePath);
}
System.gc();
return new BitmapDrawable(getResources(), scaledBitmap);
}

On Jul 16, 4:08 pm, "Maps.Huge.Info (Maps API Guru)"
<cor...@gmail.com> wrote:
> You can do whatever you want to with webview. It's a browser, well
> sort of, and as such, a little css/html/JavaScript will do just about
> anything.
>
> -John Coryat

--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home


Real Estate