版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bbtianshi/article/details/81224736
标准 看完这个帖子一定看看这个, 两个结合 , 实现 拍照 相册 回调
https://blog.csdn.net/bbtianshi/article/details/81223777
主页面布局 这里对应的就是一个点击事件 实现 ,
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/gray"
tools:context="com.lbb.rosewood.mine.view.activity.CameraActivity">
<Button
android:id="@+id/dianji"
android:text="测试"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
第二步对应 在创建 底部弹出框的布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:background="@color/gray"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/camera"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="@dimen/margin15"
android:text="拍照"
android:textColor="@color/bottom_blue"
android:textSize="@dimen/textsize20"
tools:ignore="HardcodedText,RtlHardcoded" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/line_1"
android:background="@color/error_bg" />
<TextView
android:id="@+id/pic"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="@dimen/margin15"
android:text="相册"
android:textColor="@color/bottom_blue"
android:textSize="@dimen/textsize20"
tools:ignore="HardcodedText,RtlHardcoded" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/line_1"
android:background="@color/error_bg" />
<TextView
android:id="@+id/cancel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/shape_dialog_bottom_bg"
android:gravity="center"
android:padding="@dimen/margin15"
android:text="取消"
android:textColor="@color/bottom_blue"
android:textSize="@dimen/textsize20"
tools:ignore="HardcodedText,RtlHardcoded" />
</LinearLayout>
第三步 主代码
public class CameraActivity extends AppCompatActivity implements View.OnClickListener{
private View inflate;
private TextView camera;
private TextView pic;
private TextView cancel;
private Dialog dialog;
Button dianji;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_camera);
dianji = (Button)findViewById(R.id.dianji);
dianji.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
show(view);
}
});
}
public void show(View view){
dialog = new Dialog(this,R.style.DialogTheme);
//填充对话框的布局
inflate = LayoutInflater.from(this).inflate(R.layout.ceshi, null);
//初始化控件
camera = (TextView) inflate.findViewById(R.id.camera);
pic = (TextView) inflate.findViewById(R.id.pic);
cancel = (TextView) inflate.findViewById(R.id.cancel);
camera.setOnClickListener(this);
pic.setOnClickListener(this);
cancel.setOnClickListener(this);
//将布局设置给Dialog
dialog.setContentView(inflate);
//获取当前Activity所在的窗体
Window dialogWindow = dialog.getWindow();
//设置Dialog从窗体底部弹出
dialogWindow.setGravity( Gravity.BOTTOM);
//获得窗体的属性
WindowManager.LayoutParams lp = dialogWindow.getAttributes();
lp.y = 20;//设置Dialog距离底部的距离
// 将属性设置给窗体
dialogWindow.setAttributes(lp);
dialog.show();//显示对话框
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.camera:
Toast.makeText(this,"点击了拍照",Toast.LENGTH_SHORT).show();
break;
case R.id.pic:
Toast.makeText(this,"点击了从相册选择",Toast.LENGTH_SHORT).show();
break;
case R.id.cancel:
dialog.dismiss();
break;
}
}
}
对应的style 里面弹出框的样式
<style name="DialogTheme" parent="@android:style/Theme.Dialog">
<!-- 边框 -->
<item name="android:windowFrame">@null</item>
<!-- 是否浮现在activity之上 -->
<item name="android:windowIsFloating">true</item>
<!-- 半透明 -->
<item name="android:windowIsTranslucent">true</item>
<!-- 无标题 -->
<item name="android:windowNoTitle">true</item>
<item name="android:background">@android:color/transparent</item>
<!-- 背景透明 -->
<item name="android:windowBackground">@android:color/transparent</item>
<!-- 模糊 -->
<item name="android:backgroundDimEnabled">true</item>
<!-- 遮罩层 -->
<item name="android:backgroundDimAmount">0.5</item>
</style>