亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Android 在列表List中顯示半透明小窗體效果的控

系統 2129 0
想實現圖中這樣中間有半透明窗體的效果么?

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"  
/>  

  

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


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 美国毛片一级视频在线aa | 久热久操 | 亚洲综合射| 久久香蕉国产线看观看精品蕉 | 亚洲欧美精品中字久久99 | 黄色在线免费看 | 天堂福利视频 | 国产精品偷伦视频免费观看的 | 5060网一级毛片免费观看 | 美女在线视频观看影院免费天天看 | 欧美刺激午夜性久久久久久久 | 日本免费的一级绿象 | 黄在线观看网站 | 黄色wwwwww| 热久久这里是精品6免费观看 | 中文字幕av一区 | 亚洲天堂一区二区三区四区 | 99这里只有精品视频 | 天天爽天天干 | 欧美一级毛片免费大片 | 国产精品久久久久一区二区三区 | 亚洲国产经典 | 亚洲国产成人精品区 | 在线观看精品视频一区二区三区 | 午夜看一级特黄a大片黑 | 在线看欧美三级中文经典 | 久久久久久久久免费视频 | 国产在线视频凹凸分类 | 亚洲精品乱码一区二区在线观看 | 天天做天天爱天天影视综合 | 九九手机视频 | 免费看欧美一级片 | 国产福利在线永久视频 | 欧美毛片又粗又长又大 | 黑人边吃奶边扎下面激情视频 | 天天操天天碰 | 成年超爽大片免费视频播放 | 国产福利区一区二在线观看 | 亚洲美女视频免费 | 在线观看精品国内福利视频 | 一级午夜 |