如何在使用显示指标时从 imageView 中删除白色边框?
How to remove white border from imageView while using Display Metrics?
我正在尝试从我的圆角图像中删除白边。使用显示指标将图像应用于 "pop up window"。弹出 window 有效并显示图像,但是由于图像的圆角,角有白色边框。
这是显示弹出窗口的代码 window
public class Pop extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.popup);
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int width = dm.widthPixels;
int height = dm.heightPixels;
getWindow().setLayout((int)(width*0.7), (int)(height*0.7))
;
}
}
这是将图像附加到此 window
的 XML 代码
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/pop"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:src="@drawable/pop_up"
android:scaleType="fitXY">
</ImageView>
</RelativeLayout>
我尝试了以下方法从我的带有圆角的 PNG 中删除白角(一次一个):
Java Class:
ImageView ws = (ImageView) findViewById(R.id.pop);
ws.getBackground().setAlpha(0);
XML:
android:cropToPadding="false"
android:background="@null"
android:background="@android:color/transparent"
android:alpha="0.0"
我一次尝试了所有这些不同的属性,但没有任何效果。我做错了什么?预先感谢大家的帮助:D!
1. 将属性 android:background="@android:color/transparent"
添加到您的 RelativeLayout
使其成为 transparent
.
2. 将属性 android:adjustViewBounds="true"
添加到 ImageView
以调整其 bounds
以保持其 drawable
的纵横比.
试试这个:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent">
<ImageView
android:id="@+id/pop"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:src="@drawable/pop_up"
android:scaleType="fitXY"
android:adjustViewBounds="true" >
</ImageView>
</RelativeLayout>
所以我最终弄清楚了如何解决这个问题。这就是我所做的。在样式 XML 文件中,我为弹出 window 创建了一个自定义主题,并添加了
<item name="android:windowBackground">@android:color/transparent</item>
添加到他们的样式中,而不是将其添加到包含实际图像的 imageView 中。弹出 window 现在没有白色边框了。
<style name="AppTheme.Custom">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowCloseOnTouchOutside">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
</style>
然后在清单中,这样引用主题:
<activity
android:name=".Pop"
android:theme="@style/AppTheme.Custom"
android:screenOrientation="landscape">
</activity>
感谢大家的帮助!
我正在尝试从我的圆角图像中删除白边。使用显示指标将图像应用于 "pop up window"。弹出 window 有效并显示图像,但是由于图像的圆角,角有白色边框。
这是显示弹出窗口的代码 window
public class Pop extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.popup);
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int width = dm.widthPixels;
int height = dm.heightPixels;
getWindow().setLayout((int)(width*0.7), (int)(height*0.7))
;
}
}
这是将图像附加到此 window
的 XML 代码<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/pop"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:src="@drawable/pop_up"
android:scaleType="fitXY">
</ImageView>
</RelativeLayout>
我尝试了以下方法从我的带有圆角的 PNG 中删除白角(一次一个):
Java Class:
ImageView ws = (ImageView) findViewById(R.id.pop);
ws.getBackground().setAlpha(0);
XML:
android:cropToPadding="false"
android:background="@null"
android:background="@android:color/transparent"
android:alpha="0.0"
我一次尝试了所有这些不同的属性,但没有任何效果。我做错了什么?预先感谢大家的帮助:D!
1. 将属性 android:background="@android:color/transparent"
添加到您的 RelativeLayout
使其成为 transparent
.
2. 将属性 android:adjustViewBounds="true"
添加到 ImageView
以调整其 bounds
以保持其 drawable
的纵横比.
试试这个:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent">
<ImageView
android:id="@+id/pop"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:src="@drawable/pop_up"
android:scaleType="fitXY"
android:adjustViewBounds="true" >
</ImageView>
</RelativeLayout>
所以我最终弄清楚了如何解决这个问题。这就是我所做的。在样式 XML 文件中,我为弹出 window 创建了一个自定义主题,并添加了
<item name="android:windowBackground">@android:color/transparent</item>
添加到他们的样式中,而不是将其添加到包含实际图像的 imageView 中。弹出 window 现在没有白色边框了。
<style name="AppTheme.Custom">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowCloseOnTouchOutside">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
</style>
然后在清单中,这样引用主题:
<activity
android:name=".Pop"
android:theme="@style/AppTheme.Custom"
android:screenOrientation="landscape">
</activity>
感谢大家的帮助!