DpiTestActivitypublic class DpiTestActivity extends android.app.Activity
Constructors Summary |
---|
public DpiTestActivity()
super();
init(false);
| public DpiTestActivity(boolean noCompat)
super();
init(noCompat);
|
Methods Summary |
---|
private void | addBitmapDrawable(android.widget.LinearLayout layout, int resource, boolean scale)
Bitmap bitmap;
bitmap = loadAndPrintDpi(resource, scale);
View view = new View(this);
final BitmapDrawable d = new BitmapDrawable(getResources(), bitmap);
if (!scale) d.setTargetDensity(getResources().getDisplayMetrics());
view.setBackgroundDrawable(d);
view.setLayoutParams(new LinearLayout.LayoutParams(d.getIntrinsicWidth(),
d.getIntrinsicHeight()));
layout.addView(view);
| private void | addCanvasBitmap(android.widget.LinearLayout layout, int resource, boolean scale)
Bitmap bitmap;
bitmap = loadAndPrintDpi(resource, scale);
ScaledBitmapView view = new ScaledBitmapView(this, bitmap);
view.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT));
layout.addView(view);
| private void | addChildToRoot(android.widget.LinearLayout root, android.widget.LinearLayout layout)
root.addView(layout, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT));
| private void | addLabelToRoot(android.widget.LinearLayout root, java.lang.String text)
TextView label = new TextView(this);
label.setText(text);
root.addView(label, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT));
| private void | addNinePatchResourceDrawable(android.widget.LinearLayout layout, int resource)
View view = new View(this);
final Drawable d = getResources().getDrawable(resource);
view.setBackgroundDrawable(d);
Log.i("foo", "9-patch #" + Integer.toHexString(resource)
+ " w=" + d.getIntrinsicWidth() + " h=" + d.getIntrinsicHeight());
view.setLayoutParams(new LinearLayout.LayoutParams(
d.getIntrinsicWidth()*2, d.getIntrinsicHeight()*2));
layout.addView(view);
| private void | addResourceDrawable(android.widget.LinearLayout layout, int resource)
View view = new View(this);
final Drawable d = getResources().getDrawable(resource);
view.setBackgroundDrawable(d);
view.setLayoutParams(new LinearLayout.LayoutParams(d.getIntrinsicWidth(),
d.getIntrinsicHeight()));
layout.addView(view);
| public void | init(boolean noCompat)
try {
// This is all a dirty hack. Don't think a real application should
// be doing it.
Application app = ActivityThread.currentActivityThread().getApplication();
ApplicationInfo ai = app.getPackageManager().getApplicationInfo(
"com.google.android.test.dpi", 0);
if (noCompat) {
ai.flags |= ApplicationInfo.FLAG_SUPPORTS_XLARGE_SCREENS
| ApplicationInfo.FLAG_SUPPORTS_LARGE_SCREENS
| ApplicationInfo.FLAG_SUPPORTS_NORMAL_SCREENS
| ApplicationInfo.FLAG_SUPPORTS_SMALL_SCREENS
| ApplicationInfo.FLAG_RESIZEABLE_FOR_SCREENS
| ApplicationInfo.FLAG_SUPPORTS_SCREEN_DENSITIES;
app.getResources().setCompatibilityInfo(new CompatibilityInfo(ai,
getResources().getConfiguration().screenLayout,
getResources().getConfiguration().smallestScreenWidthDp, false));
}
} catch (PackageManager.NameNotFoundException e) {
throw new RuntimeException("ouch", e);
}
| private android.graphics.Bitmap | loadAndPrintDpi(int id, boolean scale)
Bitmap bitmap;
if (scale) {
bitmap = BitmapFactory.decodeResource(getResources(), id);
} else {
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inScaled = false;
bitmap = BitmapFactory.decodeResource(getResources(), id, opts);
}
return bitmap;
| protected void | onCreate(android.os.Bundle savedInstanceState)
super.onCreate(savedInstanceState);
final LayoutInflater li = (LayoutInflater)getSystemService(
LAYOUT_INFLATER_SERVICE);
this.setTitle(R.string.act_title);
LinearLayout root = new LinearLayout(this);
root.setOrientation(LinearLayout.VERTICAL);
LinearLayout layout = new LinearLayout(this);
addBitmapDrawable(layout, R.drawable.logo120dpi, true);
addBitmapDrawable(layout, R.drawable.logo160dpi, true);
addBitmapDrawable(layout, R.drawable.logo240dpi, true);
addLabelToRoot(root, "Prescaled bitmap in drawable");
addChildToRoot(root, layout);
layout = new LinearLayout(this);
addBitmapDrawable(layout, R.drawable.logo120dpi, false);
addBitmapDrawable(layout, R.drawable.logo160dpi, false);
addBitmapDrawable(layout, R.drawable.logo240dpi, false);
addLabelToRoot(root, "Autoscaled bitmap in drawable");
addChildToRoot(root, layout);
layout = new LinearLayout(this);
addResourceDrawable(layout, R.drawable.logo120dpi);
addResourceDrawable(layout, R.drawable.logo160dpi);
addResourceDrawable(layout, R.drawable.logo240dpi);
addLabelToRoot(root, "Prescaled resource drawable");
addChildToRoot(root, layout);
layout = (LinearLayout)li.inflate(R.layout.image_views, null);
addLabelToRoot(root, "Inflated layout");
addChildToRoot(root, layout);
layout = (LinearLayout)li.inflate(R.layout.styled_image_views, null);
addLabelToRoot(root, "Inflated styled layout");
addChildToRoot(root, layout);
layout = new LinearLayout(this);
addCanvasBitmap(layout, R.drawable.logo120dpi, true);
addCanvasBitmap(layout, R.drawable.logo160dpi, true);
addCanvasBitmap(layout, R.drawable.logo240dpi, true);
addLabelToRoot(root, "Prescaled bitmap");
addChildToRoot(root, layout);
layout = new LinearLayout(this);
addCanvasBitmap(layout, R.drawable.logo120dpi, false);
addCanvasBitmap(layout, R.drawable.logo160dpi, false);
addCanvasBitmap(layout, R.drawable.logo240dpi, false);
addLabelToRoot(root, "Autoscaled bitmap");
addChildToRoot(root, layout);
layout = new LinearLayout(this);
addResourceDrawable(layout, R.drawable.logonodpi120);
addResourceDrawable(layout, R.drawable.logonodpi160);
addResourceDrawable(layout, R.drawable.logonodpi240);
addLabelToRoot(root, "No-dpi resource drawable");
addChildToRoot(root, layout);
layout = new LinearLayout(this);
addNinePatchResourceDrawable(layout, R.drawable.smlnpatch120dpi);
addNinePatchResourceDrawable(layout, R.drawable.smlnpatch160dpi);
addNinePatchResourceDrawable(layout, R.drawable.smlnpatch240dpi);
addLabelToRoot(root, "Prescaled 9-patch resource drawable");
addChildToRoot(root, layout);
setContentView(scrollWrap(root));
| private android.view.View | scrollWrap(android.view.View view)
ScrollView scroller = new ScrollView(this);
scroller.addView(view, new ScrollView.LayoutParams(ScrollView.LayoutParams.MATCH_PARENT,
ScrollView.LayoutParams.MATCH_PARENT));
return scroller;
|
|