我想制作一个带圆角边框的布局.如何应用特定大小的半径LinearLayout?
我已经知道如何设置背景图像的不透明度,但我需要设置形状对象的不透明度.
在我的Android应用中,我喜欢这样:

我希望这个黑色区域有点透明,就像这里一样,例如我可以通过这个"欢迎......"看到圆圈:

这是我的形状代码:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/shape_my"">
<stroke android:width="4dp" android:color="#636161" />
<padding android:left="20dp"
android:top="20dp"
android:right="20dp"
android:bottom="20dp" />
<corners android:radius="24dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我已经看到标准的Android UI组件外观不佳.
任何人都可以提供一些关于如何改善Android应用程序外观和感觉的链接或建议吗?
参考这些问题:
在ListView中向TextView添加渐变效果会生成NPE
和
我想知道如何去设置的背景TextView中ListView有渐变效果?
在上面的一个问题中,我最终将渐变效果添加到了文本中TextView.浏览第二个问题后,我似乎只能添加固定的背景颜色.
如何向背景添加渐变?我应该做一个CustomListAdapter?
我一直试图用圆角制作我的警报对话但不知何故我无法做到.我试过,但我失败了.我试着关注这个博客http://blog.stylingandroid.com/archives/271并根据它制作了我的风格.
顺便说一句,现在就加我的问题.我的一些新发现.上面链接中的代码在2.3.3(GB)上工作正常但在ICS中根本不起作用.一些改变使代码破裂.
我想避免创建9个补丁图像,因此我使用的是形状.9补丁图像是我将尝试的最后一件事.我知道android警报对话框样式正在使用9补丁图像.在抛出这个问题之前我已经看过了.
/res/values/themes.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyTheme" parent="@android:style/Theme.Dialog">
<item name="android:alertDialogStyle">@style/dialog</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
/res/values/styles.xml
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="AppTheme" parent="android:Theme.Light" />
<style name="myImageView">
<!-- 3dp so the background border to be visible -->
<item name="android:padding">3dp</item>
<item name="android:background">@drawable/image_drawable</item>
<item name="android:scaleType">fitCenter</item>
</style>
<style name="dialog">
<item name="android:fullDark">@drawable/dialog_body</item>
<item name="android:topDark">@drawable/dialog_title</item>
<item name="android:centerDark">@drawable/dialog_body</item>
<item name="android:bottomDark">@drawable/dialog_footer</item>
<item name="android:fullBright">@drawable/dialog_body</item>
<item name="android:centerBright">@drawable/dialog_body</item>
<item name="android:topBright">@drawable/dialog_title</item>
<item name="android:bottomBright">@drawable/dialog_footer</item>
<item name="android:bottomMedium">@drawable/dialog_footer</item>
<item name="android:centerMedium">@drawable/dialog_body</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
/res/drawable/dialog_title.xml
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetBottom="-1dp">
<shape android:shape="rectangle">
<solid android:color="#FFFFFF" />
<corners android:topLeftRadius="5dp" android:topRightRadius="5dp" /> …Run Code Online (Sandbox Code Playgroud) 我已经设置了一个具有以下可绘制背景的LinearLayout:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="10dp" />
<solid android:color="#CCFFFFFF"/>
</shape>
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是在LinearLayout中我有另一个LinearLayout元素位于它的父元素的底部.由于没有圆角,其角落延伸超过父母的左下角和右下角.
Child LinearLayout上的可绘制背景如下所示:
<?xml version="1.0" encoding="utf-8"?>
<bitmap
xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/pedometer_stats_background"
android:tileMode="repeat"
/>
Run Code Online (Sandbox Code Playgroud)
问题看起来像这样:设备上的http://kttns.org/hn2zm非剪辑更明显.
完成剪辑的最佳方法是什么?
我正在尝试实现一个使用圆角绘制自己的LinearLayout子类.根据我的研究,我设置setWillNotDraw(false)并覆盖onDraw()在画布上绘制一个圆角矩形:
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
int sc = canvas.saveLayer(0, 0, getWidth(), getHeight(), drawPaint, Canvas.MATRIX_SAVE_FLAG | Canvas.CLIP_SAVE_FLAG | Canvas.HAS_ALPHA_LAYER_SAVE_FLAG
| Canvas.FULL_COLOR_LAYER_SAVE_FLAG | Canvas.CLIP_TO_LAYER_SAVE_FLAG);
canvas.drawRoundRect(bounds, mCornerRadius, mCornerRadius, roundPaint);
canvas.restoreToCount(sc);
}
Run Code Online (Sandbox Code Playgroud)
哪里:
drawPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
drawPaint.setColor(0xffffffff);
drawPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
roundPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
roundPaint.setColor(0xffffffff);
Run Code Online (Sandbox Code Playgroud)
DST_IN这里似乎是正确的选择(根据APIDemos示例),但应该是透明的区域(圆形的)具有黑色背景,并且子项的角仍然可见.这是使用Android 4.2.2的Galaxy Nexus的结果:

任何提示?
编辑:这是我想要实现的,抱歉photoshopping的粗糙:)

编辑2:我向GitHub添加了一个可运行的示例项目:https://github.com/venator85/RoundClippingLayout
谢谢 ;)
我是android dev的新手,现在我已经尝试了几个小时为ImageView添加漂亮而光滑的圆角,但没有成功.
我尝试的第一件事就是直接对我的图像进行圆角处理,但这意味着要更改位图,因为我需要保留原始位图,而且这些都非常大,这对内存不友好.这也会导致其他困难,因为我的ImageView是流动的.
我尝试使用的第二件事是继承我的视图后的clipPath方法.这有效,但角落是别名.然后我尝试添加一个PaintFlagsDrawFilter来实现别名,但这没有用.我正在使用monodroid,我想知道这应该用于Java.
这是我的代码(C#):
public class MyImageView : ImageView
{
private float[] roundedCorner;
/**
* Contains the rounded corners for the view.
* You can define one, four or height values.
* This behaves as the css border-radius property
*
* @see http://developer.android.com/reference/android/graphics/Path.html#addRoundRect(android.graphics.RectF, float[], android.graphics.Path.Direction)
*/
public float[] RoundedCorners{
get{
return roundedCorner;
}
set{
float[] finalValue = new float[8];
int i=0;
if(value.Length == 1){
for(i=0; i<8;i++){
finalValue[i] = value[0];
}
}else if(value.Length == 4){
for(i=0; i<4;i++){
finalValue[2*i] = value[i]; …Run Code Online (Sandbox Code Playgroud) 我有一个使用UITableView的iPhone应用程序.此表视图使用"Grouped"样式,看起来非常好.现在我将这个应用程序移植到android.是否有任何关于如何使Android的ListView看起来像iPhone的分组UITableView(圆角等)的库/示例?
android ×9
antialiasing ×1
gradient ×1
graphics ×1
imageview ×1
iphone ×1
listview ×1
textview ×1
uitableview ×1
xml ×1