在Android网站上,有一个关于颜色drawables的部分.在xml中定义这些drawable如下所示:
<resources>
<drawable name="solid_red">#f00</drawable>
<drawable name="solid_blue">#0000ff</drawable>
<drawable name="solid_green">#f0f0</drawable>
</resources>
Run Code Online (Sandbox Code Playgroud)
在java api中,他们有以下方法来定义圆角:
setCornerRadius(float radius)
Run Code Online (Sandbox Code Playgroud)
有没有办法在xml中设置圆角?
在我的应用程序中,我创建的自定义对话框没有完整的高度,我无法更改和自定义.例如看到这个屏幕截图:
我的代码:
final Dialog contacts_dialog = new Dialog(ActivityGroup.this, R.style.theme_sms_receive_dialog);
contacts_dialog.setContentView(R.layout.dialog_schedule_date_time);
contacts_dialog.setCancelable(true);
contacts_dialog.setCanceledOnTouchOutside(true);
contacts_dialog.show();
Run Code Online (Sandbox Code Playgroud)
布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layoutRoot"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@null"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/shape_header_dialog_background"
android:orientation="horizontal"
android:padding="4dp" >
<TextView
android:id="@+id/TextView21"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginRight="5dp"
android:layout_weight="2"
android:gravity="center_vertical|right"
android:text="@string/choose_schedule_time_date"
android:textColor="#ffffff"
android:textSize="14sp"
android:textStyle="bold" />
<ImageView
android:id="@+id/ImageView03"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginTop="0dp"
android:background="@drawable/icon_scudule_time" />
</LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
样式:
<style name="theme_sms_receive_dialog" parent="android:style/Theme.Dialog">
<item name="android:windowNoTitle">true</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="numberPickerStyle">@style/NPWidget.Holo.Light.NumberPicker</item>
</style>
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用圆角制作自定义的android对话框.我目前的尝试给了我这个结果.

正如您所看到的,角落是圆的,但它仍然保持完整的白色角落.
下面是我放在drawable文件夹中的xml,用于创建带有圆角的红色边框的蓝色对话框.
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape
android:shape="rectangle">
<solid android:color="@color/transparent_black" />
<corners android:radius="@dimen/border_radius"/>
</shape>
</item>
<item
android:left="@dimen/border_width"
android:right="@dimen/border_width"
android:top="@dimen/border_width"
android:bottom="@dimen/border_width" >
<shape android:shape="rectangle">
<solid android:color="@color/blue" />
<corners android:radius="@dimen/border_radius"/>
</shape>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
下面是对话框的布局.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/fill"
android:orientation="vertical"
android:layout_margin="@dimen/spacing_normal"
android:padding="@dimen/spacing_normal"
android:background="@drawable/border_error_dialog" >
<RelativeLayout
style="@style/block"
android:layout_gravity="center" >
<ImageView
android:id="@+id/imageView1"
style="@style/wrap"
android:layout_alignParentLeft="true"
android:layout_centerHorizontal="true"
android:contentDescription="@string/content_description_filler"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/textView1"
style="@style/error_text"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/imageView1"
android:text="@string/error_login" />
</RelativeLayout>
<Button
android:id="@+id/button1"
style="@style/wrap"
android:layout_gravity="center"
android:text="Button" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
以下是我创建对话框的Activity.
@Override
protected void onCreate(Bundle savedInstanceState) { …Run Code Online (Sandbox Code Playgroud) android dialog transparent android-layout android-alertdialog
我创建了一个自定义AlertDialog使用圆角onDraw的LinearLayout下面,
public class RoundedLinearLayout extends LinearLayout {
private Paint drawPaint;
private Paint roundPaint;
private int mCornerRadius = 100;
private RectF bounds;
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public RoundedLinearLayout(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
onInit();
}
public RoundedLinearLayout(Context context, AttributeSet attrs) {
super(context, attrs);
onInit();
}
public RoundedLinearLayout(Context context) {
super(context);
onInit();
}
protected void onInit() {
drawPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
drawPaint.setColor(0xffffffff);
drawPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
roundPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
roundPaint.setColor(0xffffffff);
setWillNotDraw(false);
}
@Override
protected void onSizeChanged(int w, int …Run Code Online (Sandbox Code Playgroud) 我是 Android 新手,也是 Java 新手。在我的应用程序中,我有一个我正在抛出的警报对话框,它显示了一个日期和时间选择器,供用户选择他们想要发送消息的日期时间。那部分进展顺利。
在我的 xml 中,当我设置当前为蓝色并具有圆角半径的背景属性时,似乎有一个额外的白色背景,而没有圆角半径在其后面窥视。我有点恼火。任何帮助表示赞赏。
xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:background="@drawable/corners_qk"
android:layout_width="match_parent"
android:padding="8dp"
android:layout_height="match_parent">
<DatePicker
android:id="@+id/date_picker"
android:layout_width="match_parent"
android:calendarViewShown="true"
android:spinnersShown="false"
android:layout_weight="4"
android:layout_height="0dp" />
<TimePicker
android:id="@+id/time_picker"
android:layout_weight="4"
android:layout_width="match_parent"
android:layout_height="0dp" />
<Button
android:id="@+id/date_time_set"
android:layout_weight="1"
android:layout_width="match_parent"
android:background="@drawable/corners"
android:text="@string/picker_button"
android:layout_height="0dp" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
角点_qk.xml:
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<corners
android:radius="5dp" />
<solid
android:color="@color/qkblue"/>
</shape>
Run Code Online (Sandbox Code Playgroud)
颜色.xml:
<resources>
<color name="red">#FF0000</color>
<color name="qkblue">#2483d0</color>
</resources>
Run Code Online (Sandbox Code Playgroud)
爪哇:
final View dialogView = View.inflate(this, R.layout.date_time_picker, null);
final AlertDialog alertDialog = new AlertDialog.Builder(this).create();
dialogView.findViewById(R.id.date_time_set).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DatePicker …Run Code Online (Sandbox Code Playgroud)