`

Android 在列表List中显示半透明小窗体效果的控件

阅读更多
想实现图中这样中间有半透明窗体的效果么?


Android 在列表List中显示半透明小窗体效果的控件,多的不多直接上代码,要说的都在注释里了:
import android.content.Context;  
import android.graphics.PixelFormat;  
import android.os.Handler;  
import android.view.LayoutInflater;  
import android.view.View;  
import android.view.WindowManager;  
import android.view.WindowManager.LayoutParams;  
import android.widget.TextView;  
  
/** 
 * 窗口中间显示半透明提示框的小组件 
 * 用法:1. new 2. showPrevLetter(String prevLetter) 
 * @author LL 
 * 
 */  
public class PrevLetterDialog {  
    //窗体消失的延时时间  
    private static final int DELAYED_HIDEN = 500;  
  
    // 实现Runnable接口的类  
    private RemoveWindow mRemoveWindow = new RemoveWindow();  
    //在Handler里能实现对UI线程的修改  
    private Handler mHandler;  
    //窗体管理器  
    private WindowManager mWindowManager;  
    //显示在窗体中间半透明的字体框  
    private TextView mDialogText;  
    //是否正在显示中  
    private boolean mShowing;  
    //是否准备好显示了  
    private boolean mReady;  
    //显示在窗体中的字符  
    private char mPrevLetter = Character.MIN_VALUE;  
      
    /** 
     * 注明:context一定要在可见UI中通过getContext()获得,否则会抛异常。 
     * @param context 
     */  
    public PrevLetterDialog(Context context) {  
        //得到窗体管理器  
        mWindowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);  
  
        //得到布部创建者  
        LayoutInflater inflate = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);  
        //得到TextView  
        mDialogText = (TextView) inflate.inflate(R.layout.list_position, null);  
        //设TextView为可见  
        mDialogText.setVisibility(View.INVISIBLE);  
          
        //通过handler把mDialogText展示出来  
        mHandler = new Handler();  
        //要用post可实现在多线程里调用UI线程并改变  
        mHandler.post(new Runnable() {  
            public void run() {  
                mReady = true;  
                //窗体的布局参数  
                WindowManager.LayoutParams lp = new WindowManager.LayoutParams(LayoutParams.WRAP_CONTENT,  
                        LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.TYPE_APPLICATION,  
                        WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,  
                        PixelFormat.TRANSLUCENT);  
                //把TextView添加到窗体中去  
                mWindowManager.addView(mDialogText, lp);  
            }  
        });  
          
    }  
      
    //设置可见性  
    public void setmReady(boolean mReady) {  
        this.mReady = mReady;  
    }  
  
    /** 
     * 一般用在onScroll方法中,参数是字符串,不能为空,会取第一个字符显示 
     * @param prevLetter 
     */  
    public void showPrevLetter(String prevLetter) {  
        if (!mReady) {  
            return;  
        }  
        char firstLetter = prevLetter.charAt(0);  
  
        if (!mShowing && firstLetter != mPrevLetter) {  
              
            mShowing = true;  
            mDialogText.setVisibility(View.VISIBLE);  
  
        }  
        //设TextView显示的字体  
        mDialogText.setText(((Character) firstLetter).toString());  
        //移除mRemoveWindow实现的Runnable接口类  
        mHandler.removeCallbacks(mRemoveWindow);  
        //添加mRemoveWindow实现的Runnable接口类,并设延时  
        mHandler.postDelayed(mRemoveWindow, DELAYED_HIDEN);  
        mPrevLetter = firstLetter;  
  
    }  
  
    /** 
     * 实现Runnable接口的类 
     */  
    private final class RemoveWindow implements Runnable {  
        public void run() {  
            removeWindow();  
        }  
    }  
  
    private void removeWindow() {  
        if (mShowing) {  
            mShowing = false;  
            mDialogText.setVisibility(View.INVISIBLE);  
        }  
    }  
  
}  

<?xml version="1.0" encoding="utf-8"?>  
<TextView xmlns:android="http://schemas.android.com/apk/res/android"  
    android:textSize="50sp"  
    android:textColor="@color/band_common_content"  
    android:background="@drawable/common_list_title"  
    android:minWidth="70dip"  
    android:layout_height="wrap_content"  
    android:padding="5dip"  
    android:gravity="center"  
/>  
  • 大小: 54.1 KB
分享到:
评论
1 楼 yangjiantong 2011-08-03  
不错,你好,请问一下这图片中的下载功能是怎么实现的呢?点击下载按钮,如何实现在通知上和下载管理界面上都有下载进度条,并且如何控制下载的暂停、继续、取消下载等,期望您的解答,谢谢!

相关推荐

    Android实现在列表List中显示半透明小窗体效果的控件用法详解

    本文实例讲述了Android实现在列表List中显示半透明小窗体效果的控件用法。分享给大家供大家参考,具体如下: Android 在列表List中显示半透明小窗体效果的控件,多的不多直接上代码,要说的都在注释里了: import ...

    C#编程经验技巧宝典

    6 &lt;br&gt;0014 如何锁定窗体中的控件 6 &lt;br&gt;0015 统一窗体中控件的字体设置 7 &lt;br&gt;0016 通过“格式”菜单布局窗体 7 &lt;br&gt;0017 起始页中的“Visual Studio开发人员新闻” 7 &lt;br&gt;1.3 MSDN帮助的...

    Visual C++程序开发范例宝典(光盘) 第四部分

    实例039 半透明窗体 实例040 创建字型窗体 实例041 百叶窗窗体 实例042 类似Office助手 第2章 控件应用 2.1 按钮控件典型实例 实例043 AVI动画按钮 实例044 GIF动画按钮 实例045 图文按钮 实例046 不规则...

    Visual C++程序开发范例宝典(光盘) 第八部分

    实例039 半透明窗体 实例040 创建字型窗体 实例041 百叶窗窗体 实例042 类似Office助手 第2章 控件应用 2.1 按钮控件典型实例 实例043 AVI动画按钮 实例044 GIF动画按钮 实例045 图文按钮 实例046 不规则...

    Visual C++ 程序开发范例宝典 源码 光盘 part2

    cc实例039 半透明窗体 cc实例 040 创建字型窗体 cc实例041 百叶窗窗体 cc实例042 类似Office助手 第2章 控件应用 2.1 按钮控件典型实例 cc 实例043 AVI动画按钮 cc实例044 GIF动画按钮 cc实例045 ...

    Visual C++程序开发范例宝典(PDF扫描版).part3

     cc实例039 半透明窗体   cc实例040 创建字型窗体   cc实例041 百叶窗窗体   cc实例042 类似Office助手  第2章 控件应用   2.1 按钮控件典型实例   cc实例043 AVI动画按钮   cc实例044 GIF...

    Visual C++程序开发范例宝典(PDF扫描版).part2

     cc实例039 半透明窗体   cc实例040 创建字型窗体   cc实例041 百叶窗窗体   cc实例042 类似Office助手  第2章 控件应用   2.1 按钮控件典型实例   cc实例043 AVI动画按钮   cc实例044 GIF...

    QQ界面源码

    QQ界面源码实现 自绘控件 换肤 QQ界面 界面换肤 美化 异形窗口 vista 样式 透明窗体 自绘控件 vc vb delphi 编程 源码 代码 例子 磨沙 半透明 开发包 免费 破解 button dialog frame XP 下载 自绘按钮 菜单 标题栏 ...

    VC实现炫眩qq界面的模拟(附源码)

    界面换肤 美化 异形窗口 vista 样式 透明窗体 自绘控件 vc vb delphi 编程 源码 代码 例子 磨沙 半透明 开发包 免费 破解 button dialog frame XP 下载 自绘按钮 菜单 标题栏 滚动条 listctrl treeview listview ...

    java源码包2

     Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...

    java源码包---java 源码 大量 实例

     Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...

    JAVA上百实例源码以及开源项目源代码

     Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...

    java源码包3

     Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...

    java源码包4

     Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...

    JAVA上百实例源码以及开源项目

     Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...

    vs_purpleNoble.bsk

    www.afe-soft.com&lt;br&gt;&lt;br&gt;换肤引擎皮肤 Vista系列-高贵紫罗兰.rar &lt;br&gt; skinBeauty skin Beauty afe 界面换肤 美化 异形窗口 vista 样式 透明窗体 自绘控件 vc vb delphi 编程 源码 代码 例子 磨沙 半透明 ...

    vs_greenParadise.bsk

    www.afe-soft.com&lt;br&gt;&lt;br&gt;换肤引擎皮肤 Vista系列-绿色伊甸园.rar &lt;br&gt; skinBeauty skin Beauty afe 界面换肤 美化 异形窗口 vista 样式 透明窗体 自绘控件 vc vb delphi 编程 源码 代码 例子 磨沙 半透明 ...

Global site tag (gtag.js) - Google Analytics