开发工具Android Studio

今天公司UI要求软件对话框改成加图片的,以前没有做过,所以就学习了一下,废话不多说,

看效果:

创建XML文件dialog_lsit_item.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/my_dialog_shape">

<ImageView
            android:id="@+id/iv_dialog"
            android:layout_width="wrap_content"
            android:layout_height="50dp"
            android:paddingLeft="20dp"
            android:gravity="center"/>
        <TextView
            android:gravity="center"
            android:id="@+id/tv_dialog"
            android:layout_width="wrap_content"
            android:layout_height="50dp"
            android:textSize="20sp"
            android:layout_marginLeft="14dp"/>

</LinearLayout>

Main_activity.xml布局文件

<TextView
    style="@style/itemTextLeft"
    android:layout_width="wrap_content"
    android:layout_height="@dimen/dp_40"
    android:drawableLeft="@mipmap/zhifufangshi"
    android:drawablePadding="@dimen/dp_10"
    android:text="@string/text_zhifufangshi" /> <TextView
    android:id="@+id/fangshi"
    android:clickable="true"
    style="@style/itemTextLeftNext"
    android:layout_width="match_parent"
    android:layout_height="@dimen/dp_40"
    android:gravity="center_vertical|end"
    android:drawablePadding="@dimen/dp_10" />

MainActivity.java源文件

//支付对话框 icon or text
private String[] datas = {"微信支付", "支付宝支付", "余额支付"};
private int[] images = {R.drawable.weixinzhifu, R.drawable.zhifubaozhifu, R.drawable.yuezhifu};
private List<Map<String, Object>> listItem;
 
public class MainActivity extends BaseActivity implements View.OnClickListener{
 
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
        initView();
}
@Override
protected void initView() {
 
        findViewById(R.id.fangshi).setOnClickListener(this);
 
}
 
@Override
public void onClick(View view) {
    if (view != null) {
        switch (view.getId()) {      
               case R.id.fangshi:
                       showFangshi();
                       break;
               }
}
 
//选择支付方式
private void showFangshi() {
    listItem = new ArrayList<Map<String, Object>>();
    for (int i = 0; i < datas.length; i++) {
        Map<String, Object> map = new HashMap<>();
        map.put("data", datas[i]);
        map.put("image", images[i]);
        listItem.add(map);
    }
    SimpleAdapter simpleAdapter = new SimpleAdapter(this, listItem, R.layout.dialog_list_item,
            new String[]{"data", "image"}, new int[]{R.id.tv_dialog, R.id.iv_dialog});
    //自定义列表对话框
    AlertDialog.Builder builder = new AlertDialog.Builder(this).setAdapter(simpleAdapter,
            new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            //Toast.makeText(MainActivity.this, "选中了:"+datas[which].toString(),Toast.LENGTH_SHORT).show();
            //支付方式那行显示名称
            fangshi.setText(datas[which]);
            //支付方式赋值
            payType = which;
            //关闭对话框
            dialog.dismiss();
        }
    });
    builder.create().show();
}

注意:支付方式那行显示名称——关闭对话框 里边的变量是我写好的 用的时候可以注释 解除Toast注释。因公司软件  我只是截取部分  用来说明这个效果 就不上源码文件了,感谢!有问题可以私信我!

Android系统默认对话框添加图片的更多相关文章

  1. Android系统默认设置

    修改Settings源码,可修改系统设置项,Settings数据被存放于com.android.providers.settings/databases/settings.db中,如果想修改系统启动后 ...

  2. 美化传奇NPC对话框添加图片显示实列

    NPC对话框一般都是文字显示,有些GM想突出版本特色,在NPC对话框加些专业图片,彰显独特之处,其实这是很简单的.下面为你讲解美化传奇NPC对话框添加图片显示实列 我们要添加你要放入npc图片的补丁. ...

  3. Android系统默认语言改为中文

    第一种方法: 修改 build/tools/buildinfo.sh echo "ro.product.locale.language=zh"echo "ro.produ ...

  4. 高速改动android系统默认日期方法

    高速改动android系统默认日期方法 在android系统的设备上,都有一个默认的開始日期,看过非常多设备,有些设备在没有联网的时候没有同步到系统时间的时候,竟然默认的还是1970年的日期.也见过有 ...

  5. Android源码分析(九)-----如何修改Android系统默认时间

    一 : 修改Android系统默认时间 源码路径:frameworks/base/services/java/com/android/server/SystemServer.java 主要变量EARL ...

  6. Android 系统默认参数的修改

    转自: http://www.th7.cn/Program/Android/201505/447097.shtml 写在前面的话 一般在新项目开始之初,我们需要针对客户需求进行各种系统默认属性的配置, ...

  7. Android系统默认Home应用程序(Launcher)的启动过程源代码分析

    在前面一篇文章中,我们分析了Android系统在启动时安装应用程序的过程,这些应用程序安装好之后,还需要有一个 Home应用程序来负责把它们在桌面上展示出来,在Android系统中,这个默认的Home ...

  8. Android系统默认Home应用程序(Launcher)的启动过程源码分析

    在前面一篇文章中,我们分析了Android系统在启动时安装应用程序的过程,这些应用程序安装好之后,还须要有一个Home应用程序来负责把它们在桌面上展示出来,在Android系统中,这个默认的Home应 ...

  9. 通过settings.db自定义Android系统默认设置

    Android的系统设置数据存放在/data/data/com.android.providers.settings/databases/settings.db 中 数据库结构如下: 数据库中的默认数 ...

随机推荐

  1. 菜鸟Python学习笔记第一天:关于一些函数库的使用

    2017年1月3日 星期二 大一学习一门新的计算机语言真的很难,有时候连函数拼写出错查错都能查半天,没办法,谁让我英语太渣. 关于计算机语言的学习我想还是从C语言学习开始为好,Python有很多语言的 ...

  2. MVVM设计模式和WPF中的实现(四)事件绑定

    MVVM设计模式和在WPF中的实现(四) 事件绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中 ...

  3. 了解PHP中的Array数组和foreach

    1. 了解数组 PHP 中的数组实际上是一个有序映射.映射是一种把 values 关联到 keys 的类型.详细的解释可参见:PHP.net中的Array数组    . 2.例子:一般的数组 这里,我 ...

  4. Canvas绘图之平移translate、旋转rotate、缩放scale

    画布操作介绍 画布绘图的环境通过translate(),scale(),rotate(), setTransform()和transform()来改变,它们会对画布的变换矩阵产生影响. 函数 方法 描 ...

  5. 使用技术手段限制DBA的危险操作—Oracle Database Vault

    概述 众所周知,在业务高峰期,某些针对Oracle数据库的操作具有很高的风险,比如修改表结构.修改实例参数等等,如果没有充分评估和了解这些操作所带来的影响,这些操作很可能会导致故障,轻则导致应用错误, ...

  6. CRL快速开发框架系列教程十一(大数据分库分表解决方案)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  7. C++随笔:.NET CoreCLR之GC探索(1)

    一直是.NET程序员,但是.NET的核心其实还是C++,所以我准备花 一点时间来研究CoreCLR和CoreFX.希望这个系列的文章能给大家带来 帮助. GC的代码有很多很多,而且结构层次对于一个初学 ...

  8. C++ 拷贝构造函数和赋值运算符

    本文主要介绍了拷贝构造函数和赋值运算符的区别,以及在什么时候调用拷贝构造函数.什么情况下调用赋值运算符.最后,简单的分析了下深拷贝和浅拷贝的问题. 拷贝构造函数和赋值运算符 在默认情况下(用户没有定义 ...

  9. 通过AngularJS实现前端与后台的数据对接(一)——预备工作篇

    最近,笔者在做一个项目:使用AngularJS,从而实现前端与后台的数据对接.笔者这是第一次做前端与后台的数据对接的工作,因此遇到了许多问题.笔者在这些问题中,总结了一些如何实现前端与后台的数据对接的 ...

  10. redis成长之路——(二)

    redis操作封装 针对这些常用结构,StackExchange.Redis已经做了一些封装,不过在实际应用场景中还必须添加一些功能,例如重试等 所以对一些常功能做了一些自行封装SERedisOper ...