MediaRouter: Remove white lines around artwork
- Use fitXY for ImageView for artwork to remove vertical white lines.
Reference:
http://www.techrepublic.com/article/clear-up-ambiguity-about-android-image-view-scale-types-with-this-guide/
- Change setMaxHeight with setLayoutParam to remove horizontal lines.
Change-Id: I2c93141c2a64a57f74491464fe8bc3aa8163151f
diff --git a/v7/mediarouter/res/layout/mr_controller_material_dialog_b.xml b/v7/mediarouter/res/layout/mr_controller_material_dialog_b.xml
index 9d1c412..9b9d05c 100644
--- a/v7/mediarouter/res/layout/mr_controller_material_dialog_b.xml
+++ b/v7/mediarouter/res/layout/mr_controller_material_dialog_b.xml
@@ -51,7 +51,7 @@
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
- android:scaleType="fitCenter"
+ android:scaleType="fitXY"
android:background="?attr/colorPrimary"
android:layout_gravity="top"
android:visibility="gone" />
diff --git a/v7/mediarouter/src/android/support/v7/app/MediaRouteControllerDialog.java b/v7/mediarouter/src/android/support/v7/app/MediaRouteControllerDialog.java
index 63875b7..65bf0e7 100644
--- a/v7/mediarouter/src/android/support/v7/app/MediaRouteControllerDialog.java
+++ b/v7/mediarouter/src/android/support/v7/app/MediaRouteControllerDialog.java
@@ -350,10 +350,9 @@
mVolumeGroupList.setVisibility(View.VISIBLE);
mVolumeGroupList.setAdapter(
new VolumeGroupAdapter(getContext(), getGroup().getRoutes()));
- ViewGroup.LayoutParams lp = mVolumeGroupList.getLayoutParams();
- lp.height = MediaRouteDialogHelper.getControllerVolumeGroupListHeight(
- getContext(), mVolumeGroupList.getAdapter().getCount());
- mVolumeGroupList.setLayoutParams(lp);
+ setLayoutHeight(mVolumeGroupList,
+ MediaRouteDialogHelper.getControllerVolumeGroupListHeight(
+ getContext(), mVolumeGroupList.getAdapter().getCount()));
} else {
mGroupExpandCollapseButton.setImageDrawable(expandGroupDrawable);
mVolumeGroupList.setVisibility(View.GONE);
@@ -561,8 +560,7 @@
}
}
}
- mDefaultControlLayout.setLayoutParams(new LinearLayout.LayoutParams(
- LinearLayout.LayoutParams.FILL_PARENT, height));
+ setLayoutHeight(mDefaultControlLayout, height);
}
private boolean isVolumeControlAvailable() {
@@ -593,18 +591,28 @@
if (mArtView.getVisibility() == View.GONE) {
if (decorView.getMeasuredHeight() + desiredArtHeight <= displayMetrics.heightPixels) {
mArtView.setVisibility(View.VISIBLE);
- mArtView.setMaxHeight(desiredArtHeight);
+ setLayoutHeight(mArtView, desiredArtHeight);
+ mArtView.setScaleType(art.getWidth() >= art.getHeight()
+ ? ImageView.ScaleType.FIT_XY : ImageView.ScaleType.FIT_CENTER);
}
} else {
if (decorView.getMeasuredHeight() - mArtView.getMeasuredHeight() + desiredArtHeight
<= displayMetrics.heightPixels) {
- mArtView.setMaxHeight(desiredArtHeight);
+ setLayoutHeight(mArtView, desiredArtHeight);
+ mArtView.setScaleType(art.getWidth() >= art.getHeight()
+ ? ImageView.ScaleType.FIT_XY : ImageView.ScaleType.FIT_CENTER);
} else {
mArtView.setVisibility(View.GONE);
}
}
}
+ private static void setLayoutHeight(View view, int height) {
+ ViewGroup.LayoutParams lp = view.getLayoutParams();
+ lp.height = height;
+ view.setLayoutParams(lp);
+ }
+
private static void setVolumeSliderColor(Context context, SeekBar volumeSlider, int color) {
volumeSlider.getProgressDrawable().setColorFilter(color, PorterDuff.Mode.SRC_IN);
if (Build.VERSION.SDK_INT >= 16) {
@@ -843,7 +851,7 @@
if (art != null && art.getWidth() < art.getHeight()) {
// Portrait art requires background color.
Palette palette = new Palette.Builder(art).maximumColorCount(1).generate();
- mBackgroundColor = (palette.getSwatches() == null)
+ mBackgroundColor = palette.getSwatches().isEmpty()
? 0 : palette.getSwatches().get(0).getRgb();
}
return art;