需求:在当前页面悬浮显示图片,背景位透明色。
废话不多说,直接上代码。
先引入两个库,很常见的啦~~
compile 'com.github.chrisbanes.photoview:library:+' compile 'com.github.bumptech.glide:glide:3.7.0'
<!--全屏背景半透明 dialog--> <style name="transparentBgDialog" parent="@android:style/Theme.Dialog"> <item name="android:windowFrame">@null</item> <item name="android:windowIsFloating">true</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowBackground">@color/transparent</item> <item name="android:backgroundDimEnabled">true</item> <item name="android:background">@color/transparent</item> <item name="android:windowNoTitle">true</item> </style>
颜色值要透明哦,也可其他色。看产品需求吧,嘻嘻 <color name="transparent">#00000000</color>
敲黑板划重点啦!!!代码Ctrl +C 吧。哈哈
public class ShowImagesDialog extends Dialog { private View mView; private Activity mContext; private PhotoView photoView; private String imgUrls; public ShowImagesDialog(@NonNull Activity context, String imgUrls) { super(context, R.style.transparentBgDialog); this.mContext = context; this.imgUrls = imgUrls; initView(); initData(); } private void initView() { photoView = new uk.co.senab.photoview.PhotoView(mContext); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(photoView); Window window = getWindow(); WindowManager.LayoutParams wl = window.getAttributes(); wl.x = 0; wl.y = 0; DisplayMetrics metrics = new DisplayMetrics(); mContext.getWindowManager().getDefaultDisplay().getMetrics(metrics); wl.height = metrics.heightPixels; wl.width = metrics.widthPixels; wl.gravity = Gravity.CENTER; window.setAttributes(wl); } private void initData() { //点击图片监听 Glide.with(mContext) .load(imgUrls) .placeholder(R.mipmap.ic_launcher) .error(R.mipmap.ic_launcher) .into(new SimpleTarget<GlideDrawable>() { @Override public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> glideAnimation) { photoView.setImageDrawable(resource); } }); } }
看效果:惊艳吧。哈哈
菜鸟笔记,大神勿喷。谢谢~~
交流QQ:948879263