概述

今天有个群友问 Android 图片凸出 效果怎么弄,早以前有过类似的需求,整个项目的提示框都是一个背景,背景上方有凸出半张图片,所以用layer-list写了一个背景来实现。

思路

随便画了一下比较丑,大概就是这个样子了,从上图中应该不难看出,有三个部分,顶部为透明的,底部是有色值的,那个六角星就是凸出来的图片。
那么就来动手呗,新建一个资源文件,用layer-list属性,里面用三个item,第一个item设置高度为30dp,第二个item设置top为30dp,就刚好是个垂直布局,第三个item包含一个bitmap标签,作用是为了保持图片的原大小。

代码

layer-list背景

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  3. <item>
  4. <!--30dp 透明-->
  5. <shape>
  6. <size android:height="30dp" />
  7. <corners android:radius="10dp" />
  8. <solid android:color="@android:color/transparent" />
  9. </shape>
  10. </item>
  11. <!--下偏移30dp-->
  12. <item android:top="30dp">
  13. <shape>
  14. <corners android:radius="10dp" />
  15. <solid android:color="@android:color/white" />
  16. </shape>
  17. </item>
  18. <!--用 bitmap 标签来保持原大小-->
  19. <item>
  20. <bitmap
  21. android:gravity="center_horizontal|top"
  22. android:src="@mipmap/ic_sync" />
  23. </item>
  24. </layer-list>

layout 设置根节点背景 android:background="@drawable/bg_money_dialog"

  1. <?xml version="1.0" encoding="utf-8"?><!--背景 bg_money_dialog-->
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="wrap_content"
  5. android:background="@drawable/bg_money_dialog"
  6. android:orientation="vertical">
  7. <EditText
  8. android:layout_width="match_parent"
  9. android:layout_height="wrap_content"
  10. android:gravity="center_horizontal"
  11. android:hint="请输入提现金额" />
  12. <EditText
  13. android:layout_width="match_parent"
  14. android:layout_height="wrap_content"
  15. android:gravity="center_horizontal"
  16. android:hint="请输入提现密码" />
  17. <Button
  18. android:layout_width="wrap_content"
  19. android:layout_height="wrap_content"
  20. android:layout_gravity="center_horizontal"
  21. android:text="确认" />
  22. </LinearLayout>
dialogFragment代码
  1. public class CheckoutMoneyDialog extends DialogFragment {
  2. @Override
  3. public Dialog onCreateDialog(Bundle savedInstanceState) {
  4. AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
  5. LayoutInflater inflater = getActivity().getLayoutInflater();
  6. View view = inflater.inflate(R.layout.fragment_checkout_money_dialog, null);
  7. builder.setView(view);
  8. Dialog dialog = builder.create();
  9. return dialog;
  10. }
  11. }

运行看看效果

效果不佳,可能需要把 EditText 设置一下 layout_marginTop 
layout_marginTop="100dp" 后确实图片没有叠在 EditText 之上,可顶部还是没有透明效果,这个原因是由于dialog背景引起的,需然layout透明,可dialog自身也是有背景的,我们把dialog背景透明一下
  1. Dialog dialog = builder.create();
  2. Window window = dialog.getWindow();
  3. window.setBackgroundDrawableResource(android.R.color.transparent);
  4. return dialog;

 

Android图片突出的更多相关文章

  1. Android图片缓存之Lru算法

    前言: 上篇我们总结了Bitmap的处理,同时对比了各种处理的效率以及对内存占用大小.我们得知一个应用如果使用大量图片就会导致OOM(out of memory),那该如何处理才能近可能的降低oom发 ...

  2. Android图片处理

    相信做Android开发的小伙伴对于Android图片压缩.裁剪一定有很深的印象,今天我将带领大家一起学习一下这个看着高深莫测的知识,以便再以后的学习.工作中可以帮助到大家. 首先我们看一下这个问题出 ...

  3. Android图片缓存之Glide进阶

    前言: 前面学习了Glide的简单使用(Android图片缓存之初识Glide),今天来学习一下Glide稍微复杂一点的使用. 图片缓存相关博客地址: Android图片缓存之Bitmap详解 And ...

  4. Android图片缓存之初识Glide

    前言: 前面总结学习了图片的使用以及Lru算法,今天来学习一下比较优秀的图片缓存开源框架.技术本身就要不断的更迭,从最初的自己使用SoftReference实现自己的图片缓存,到后来做电商项目自己的实 ...

  5. Android图片缓存之Bitmap详解

    前言: 最近准备研究一下图片缓存框架,基于这个想法觉得还是先了解有关图片缓存的基础知识,今天重点学习一下Bitmap.BitmapFactory这两个类. 图片缓存相关博客地址: Android图片缓 ...

  6. Android 图片压缩、照片选择、裁剪,上传、一整套图片解决方案

    1.Android一整套图片解决方案 http://mp.weixin.qq.com/s?__biz=MzAxMTI4MTkwNQ==&mid=2650820998&idx=1& ...

  7. 一步一步打造自己的Android图片浏览器(原创)

    今天我们试着来制作一个自己的Android图片浏览器. 图片浏览器应该具有什么功能呢?鉴于不同的人不同的理解,这里提出一个基本的需求: 搜索手机内的所有图片,展示于一个列表中: 列表中展示的是图片的缩 ...

  8. Android 图片浏览器 从原来位置放大至全屏显示

    android 图片浏览器 特点: 1.从网络加载图片,只需要传图片地址数组即可 2.点击图片,从原来位置放大至全屏 3.支持手势操作 4.完全自定义布局 项目源码请到GitHub下载:https:/ ...

  9. android图片处理方法

    Java代码 //压缩图片大小 public static Bitmap compressImage(Bitmap image) { ByteArrayOutputStream baos = new ...

  10. Android 图片文件操作、屏幕相关、.9图片的理解

     一:Android图片操作 1.存储bitmap到本地文件系统 public static void bitmapToFile(Bitmap bitmap, String uri) { if(!ex ...

随机推荐

  1. leetcode 【 Triangle 】python 实现

    题目: Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjace ...

  2. Windows核心编程小结3

    内存映射和堆栈 内存映射文件 内存映射文件可以用于3个不同的目的: 系统使用内存映射文件,以便加载和执行.exe和DLL文件.这可以大大节省页文件空间和应用程序启动运行所需的时间. 可以使用内存映射文 ...

  3. Leetcode 650.只有两个键的键盘

    只有两个键的键盘 最初在一个记事本上只有一个字符 'A'.你每次可以对这个记事本进行两种操作: Copy All (复制全部) : 你可以复制这个记事本中的所有字符(部分的复制是不允许的). Past ...

  4. mysql里制造一个错误

    最近突然想到的,由于在触发器中执行失败事务性表会自动回滚. 所以就想制造一个错误,在群里问了问最后还真得到一个制造错误的方法,或者可以叫做自定义异常 SIGNAL SQLSTATE ' SET MES ...

  5. BZOJ 3456 城市规划 ——NTT

    搞出递推式. 发现可以变成三个函数的乘积. 移项之后就可以求逆+NTT做了. miskoo博客中有讲 #include <map> #include <cmath> #incl ...

  6. 飘雪圣域(icekingdom)

    飘雪圣域(icekingdom) 题目描述 IcePrincess_1968 和 IcePrince_1968 长大了,他们开始协助国王 IceKing_1968 管理国内事物. IcePrinces ...

  7. Mysql 数据库备份工具 xtrabackup

    1.安装测试数据库mysql5.7 详细步骤 yum install -y gcc gcc-c++ cmake bison ncurses-devel .tar.gz cd mysql-/ cmake ...

  8. 关于UITextView的限制字数显示,以及emjor表情占用字节处理,复制粘贴字节处理~优化

    //限制字数 #define MAX_LIMIT_NUMS 30 1 #pragma mark -- textview的代理事件 - (BOOL)textView:(UITextView *)text ...

  9. Bzoj1195 [HNOI2006]最短母串 [AC自动机]

    Time Limit: 10 Sec  Memory Limit: 32 MBSubmit: 1304  Solved: 439 Description 给定n个字符串(S1,S2,„,Sn),要求找 ...

  10. HTTP 错误 401.2 - Unauthorized

    最近开始拾起Asp.net方面的知识,遇到如下这个问题 HTTP 错误 401.2 - Unauthorized 由于身份验证头无效,您无权查看此页. 解决方法: >IIS管理 >功能视图 ...