匹配图像路径的正则表达式语句
1 if(IMAGE_PATH.matches("[a-zA-Z0-9\\/]*\\.(jpg|JPG|png|PNG|gif|GIF)")){ 2 DialogFragment fragment=ImageDialogFragment.newInstance(getActivity(),IMAGE_PATH); 3 fragment.show(getActivity().getSupportFragmentManager(),"TAG"); 4 }else { 5 Toast.makeText(getActivity(),IMAGE_PATH+"不是图片文件路径",Toast.LENGTH_SHORT).show(); 6 }
摘录如下:
[a-zA-Z0-9\\/]*\\.(jpg|JPG|png|PNG|gif|GIF)
匹配带有/和数字字母的文件路径名,并且匹配拓展名。
DialogFragment中使用传入的绝对路径在自定义的Layout中显示图像
首先是布局文件:
1 <?xml version="1.0" encoding="utf-8"?> 2 <RelativeLayout 3 android:layout_width="wrap_content" 4 android:layout_height="wrap_content" 5 xmlns:android="http://schemas.android.com/apk/res/android" 6 android:gravity="center"> 7 <ImageView 8 android:id="@+id/show_image" 9 android:contentDescription="@string/app_name" 10 android:layout_width="wrap_content" 11 android:layout_height="wrap_content"/> 12 </RelativeLayout>
然后是在DialogFragment的onCreateDialog方法中实现Dialog,返回的实际上是一个AlertDialog对象,一般自定义DIalog都是使用这个类,方法定义如下:
1 @Override 2 public Dialog onCreateDialog(Bundle savedInstanceState) { 3 4 View v=mLayoutInflater.inflate(R.layout.dialog_show_image,null); 5 6 ImageView showImage=(ImageView)v.findViewById(R.id.show_image); 7 Bitmap bm= BitmapFactory.decodeFile(PATH_IMAGE); 8 showImage.setImageBitmap(bm); 9 10 AlertDialog.Builder builder=new AlertDialog.Builder(getActivity()); 11 builder.setView(v) 12 .setPositiveButton(R.string.fire, new DialogInterface.OnClickListener() { 13 @Override 14 public void onClick(DialogInterface dialog, int which) { 15 // 16 } 17 }) 18 .setTitle(PATH_IMAGE); 19 return builder.create(); 20 }
更加复杂的Dialog没有实现,点击后效果如下:
以上。
时间: 2024-10-19 21:10:49