Android自定義控件

  1. Android中Canvas繪圖基礎(chǔ)詳解
  2. Android Paint、Canvas、Matrix使用講解(一、Paint)
  3. Android Paint之 setXfermode PorterDuffXfermode 講解
  4. Canvas開(kāi)篇之drawBitmap方法講解
  5. Android 手把手教您自定義ViewGroup(一)
  6. Android 自定義View (一)
  7. Android 自定義View (二) 進(jìn)階
  8. Android 自定義View (三) 圓環(huán)交替 等待效果
  9. Android 自定義View (四) 視頻音量調(diào)控
  10. Android 深入理解Android中的自定義屬性
  11. Android ViewDragHelper完全解析 自定義ViewGroup神器
  12. Android 自定義控件實(shí)戰(zhàn)
  13. Android LayoutInflater原理分析,帶你一步步深入了解View(一)
  14. Android視圖繪制流程完全解析,帶你一步步深入了解View(二)
  15. Android視圖狀態(tài)及重繪流程分析,帶你一步步深入了解View(三)
  16. Android自定義View的實(shí)現(xiàn)方法,帶你一步步深入了解View(四)
  17. Android自定義控件三部曲文章索引
  18. 自定義View:測(cè)量measure,布局layout,繪制draw

自定義控件

旋轉(zhuǎn)菜單

下拉選擇

下拉刷新

滑動(dòng)開(kāi)關(guān)

輪播圖 廣告條

自定義控件

側(cè)邊欄SlidingMenu

水波紋

自定義控件

自定義ViewPager

快速索引

粘性控件

視差特效

側(cè)滑面板

DragLayout

側(cè)拉刪除

等比例顯示控件

流式布局FlowLayout

3D畫(huà)廊

自定義吐司

public class AddressTost implements OnTouchListener {
    private WindowManager              mWM;
    private Context                    mContext;
    private WindowManager.LayoutParams mParams;
    private TextView                   mLocation;
    private TextView                   mView;

    public AddressTost(Context context) {
        this.mContext = context;
        mWM = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
        mParams = new WindowManager.LayoutParams();
        WindowManager.LayoutParams params = mParams;
        params.height = WindowManager.LayoutParams.WRAP_CONTENT;
        params.width = WindowManager.LayoutParams.WRAP_CONTENT;
        params.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
                // | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE //需要toast 有觸摸事件
                | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
        params.format = PixelFormat.TRANSLUCENT;
        // params.windowAnimations =
        // com.android.internal.R.style.Animation_Toast;
        // params.type = WindowManager.LayoutParams.TYPE_TOAST;//土司天生沒(méi)有觸摸事件
        params.type = WindowManager.LayoutParams.TYPE_PRIORITY_PHONE;//換成電話(huà)的類(lèi)型
        /**
         * 展示號(hào)碼歸屬地顯示
         */
    public void show(String location) {
        mLocation = (TextView) view.findViewById(R.id.tv_location);
        mView = new TextView(mContext);
        // 設(shè)置歸屬地的顏色
        mView.setBackgroundColor(Color.RED);
        // 設(shè)置歸屬地的位置
        mLocation.setText(location);
        mWM.addView(mView, mParams);
    }
    /**
     * 隱藏號(hào)碼歸屬地
     */
    public void hide() {
        // 隱藏土司
        if (mView!= null) {
            // note: checking parent() just to make sure the view has
            // been added... i have seen cases where we get here when
            // the view isn't yet added, so let's try not to crash.
            if (mView.getParent() != null) {
                // if (localLOGV) Log.v(TAG, "REMOVE! " + mView + " in " +
                // this);
                mWM.removeView(mView);
            }
            view = null;
        }
    }
}

自定義對(duì)話(huà)框

public class AddressDialog extends Dialog {
    private Window              window;
    private OnItemClickListener mOnItemClickListener;

    //把我們自己的樣式傳給父類(lèi)
    //屏蔽父類(lèi)里面的樣式
    public AddressDialog(Context context) {
        super(context, R.style.AddressDialogStyle);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dialog_address_style);
        window = getWindow();
        //獲取到當(dāng)前窗體的樣式
        LayoutParams params = window.getAttributes();

        params.gravity = Gravity.BOTTOM;
        // | Gravity.CENTER_HORIZONTAL;
        //設(shè)置窗體的屬性
        window.setAttributes(params);
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,460評(píng)論 25 708
  • 說(shuō)到下拉刷新控件,網(wǎng)上版本有很多,很多軟件也都有下拉刷新功能。有一個(gè)叫XListView的,我看別人用過(guò),沒(méi)看過(guò)是...
    AiPuff閱讀 3,461評(píng)論 3 43
  • 導(dǎo)語(yǔ) 當(dāng)系統(tǒng)控件不能滿(mǎn)足我們的需求的時(shí)候,這時(shí)候我們就需要自定義控件,根據(jù)我們的需求來(lái)定制一個(gè)能滿(mǎn)足我們需求的控件...
    一個(gè)有故事的程序員閱讀 6,490評(píng)論 2 14
  • 輕輕的走過(guò),從春天到冬天,歲月無(wú)恙,但四季已悄然更替。 1 又一年的新春已悄然走來(lái),很多風(fēng)景,在聚散依依里已然多了...
    林中風(fēng)兒閱讀 740評(píng)論 24 23
  • 文/添一抹嵐 蜷縮在暖和的被褥中,聽(tīng)著孩子均勻的鼻息,我睡意沒(méi)星點(diǎn),因?yàn)橄肫鹞易詡€(gè)的兒時(shí),關(guān)于冷冬時(shí)我的點(diǎn)滴。 我...
    添一抹嵐閱讀 776評(píng)論 47 45