此篇介绍了如何继承Dialog自定义对话框,内容比较简单,所以我在后面补充了如何使用一款非常优秀的安卓ui框架实现自定义对话框。
同时这也是中国大学慕课移动终端应用开发的网课作业14,我会持续更新我的作业,如果有需要关注一下吧
说明
本篇的重点不是作业内容,而是介绍一款优秀的ui框架–XUI
-
项目源地址在这里:一个简洁而优雅的Android原生UI框架,解放你的双手!
-
项目作者的博客在这里:xuexiangjys
效果图
左未使用框架,右使用框架(这里我只是简单演示)
代码部分
包括了一个自定义Dialog类MyDialog,主Activity及布局和子布局文件,以下是具体内容:
MyDialog.java
public class MyDialog extends Dialog {
private ImageView mImage;
private Context mContext;
protected MyDialog(Context context) {
super(context);
this.mContext = context;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dialog_view1);
mImage = findViewById(R.id.img_ok);
mImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(mContext,"确定",Toast.LENGTH_SHORT).show();
cancel();
}
});
setCanceledOnTouchOutside(false);
}
}
Dialog1Activity.java
这是我的默认首页,记得修改AndroidManifest.xml里的值
public class Dialog1Activity extends AppCompatActivity {
private Button mButton1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dialog1);
mButton1 = findViewById(R.id.dialog1_button);
mButton1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MyDialog myDialog = new MyDialog(Dialog1Activity.this);
myDialog.show();
}
});
}
}
activity_dialog1.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/dialog1_button"
android:layout_marginTop="30dp"
android:textSize="30dp"
android:text="显示对话框"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
子布局dialog_view1.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="260dp"
android:layout_height="match_parent">
<RelativeLayout
android:layout_marginTop="-20dp"
android:background="#F1DBC8"
android:layout_width="match_parent"
android:layout_height="250dp">
<ImageView
android:id="@+id/img_right"
android:layout_centerInParent="true"
android:src="@drawable/right"
android:layout_width="100dp"
android:layout_height="100dp"/>
<TextView
android:layout_below="@id/img_right"
android:layout_centerHorizontal="true"
android:text="Done"
android:textSize="30dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="100dp">
<TextView
android:text="Something done"
android:textSize="30dp"
android:layout_centerInParent="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="100dp">
<ImageView
android:id="@+id/img_ok"
android:layout_centerInParent="true"
android:src="@drawable/ok"
android:layout_width="80dp"
android:layout_height="80dp"/>
</RelativeLayout>
</LinearLayout>
下面是安利阶段
点击以下地址进入项目的GitHub主页:一个简洁而优雅的Android原生UI框架,解放你的双手!
在底下的readme.md文件中,作者详细的说明了此框架的使用方法
因为非常详细,我也就不多赘述,跟着步骤走就行。引用框架的时候如果遇到什么问题可以私聊我。这个ui框架涉及了许多方面,对以后项目的ui搭建会起到很大作用。如果碰巧你有github账号,也可以star支持以下那位大神作者。
补充一个细节
这里指的是下面这个地方
使用
只要简单粗暴的把UI框架内的示例代码放进去就能实现效果,当然将项目源码下载到自己本地,研究如何实现更下饭哦
总结
码字不易,若有帮助,给个关注和赞呗