亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? internalselectionview.java

?? Android Source Code. An gallary program.
?? JAVA
字號:
/* * Copyright (C) 2007 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * *      http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package com.example.android.apis.view;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Rect;import android.util.AttributeSet;import android.view.KeyEvent;import android.view.View;/** * A view that has a known number of selectable rows, and maintains a notion of which * row is selected. The rows take up the * entire width of the view.  The height of the view is divided evenly among * the rows. * * Notice what this view does to be a good citizen w.r.t its internal selection: * 1) calls {@link View#requestRectangleOnScreen} each time the selection changes due to *    internal navigation. * 2) overrides {@link View#getFocusedRect} by filling in the rectangle of the currently *    selected row * 3) overrides {@link View#onFocusChanged} and sets selection appropriately according to *    the previously focused rectangle. */public class InternalSelectionView extends View {    private Paint mPainter = new Paint();    private Paint mTextPaint = new Paint();    private Rect mTempRect = new Rect();    private int mNumRows = 5;    private int mSelectedRow = 0;    private final int mEstimatedPixelHeight = 10;    private Integer mDesiredHeight = null;    private String mLabel = null;    public InternalSelectionView(Context context, int numRows) {        this(context, numRows, "");    }        public InternalSelectionView(Context context, int numRows, String label) {        super(context);        mNumRows = numRows;        mLabel = label;        init();    }    public InternalSelectionView(Context context, AttributeSet attrs) {        super(context, attrs);        init();    }    private void init() {        setFocusable(true);        mTextPaint.setAntiAlias(true);        mTextPaint.setTextSize(10);        mTextPaint.setColor(Color.WHITE);    }    public int getNumRows() {        return mNumRows;    }    public int getSelectedRow() {        return mSelectedRow;    }    public void setDesiredHeight(int desiredHeight) {        mDesiredHeight = desiredHeight;    }    public String getLabel() {        return mLabel;    }    @Override    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {        setMeasuredDimension(            measureWidth(widthMeasureSpec),            measureHeight(heightMeasureSpec));    }    private int measureWidth(int measureSpec) {        int specMode = MeasureSpec.getMode(measureSpec);        int specSize = MeasureSpec.getSize(measureSpec);        int desiredWidth = 300 + getPaddingLeft() + getPaddingRight();        if (specMode == MeasureSpec.EXACTLY) {            // We were told how big to be            return specSize;        } else if (specMode == MeasureSpec.AT_MOST) {            return desiredWidth < specSize ? desiredWidth : specSize;        } else {            return desiredWidth;        }    }    private int measureHeight(int measureSpec) {        int specMode = MeasureSpec.getMode(measureSpec);        int specSize = MeasureSpec.getSize(measureSpec);        int desiredHeight = mDesiredHeight != null ?                mDesiredHeight :                mNumRows * mEstimatedPixelHeight + getPaddingTop() + getPaddingBottom();        if (specMode == MeasureSpec.EXACTLY) {            // We were told how big to be            return specSize;        } else if (specMode == MeasureSpec.AT_MOST) {            return desiredHeight < specSize ? desiredHeight : specSize;        } else {            return desiredHeight;        }    }    @Override    protected void onDraw(Canvas canvas) {        int rowHeight = getRowHeight();        int rectTop = getPaddingTop();        int rectLeft = getPaddingLeft();        int rectRight = getWidth() - getPaddingRight();        for (int i = 0; i < mNumRows; i++) {            mPainter.setColor(Color.BLACK);            mPainter.setAlpha(0x20);            // draw background rect            mTempRect.set(rectLeft, rectTop, rectRight, rectTop + rowHeight);            canvas.drawRect(mTempRect, mPainter);            // draw forground rect            if (i == mSelectedRow && hasFocus()) {                mPainter.setColor(Color.RED);                mPainter.setAlpha(0xF0);                mTextPaint.setAlpha(0xFF);            } else {                mPainter.setColor(Color.BLACK);                mPainter.setAlpha(0x40);                mTextPaint.setAlpha(0xF0);            }            mTempRect.set(rectLeft + 2, rectTop + 2,                    rectRight - 2, rectTop + rowHeight - 2);            canvas.drawRect(mTempRect, mPainter);            // draw text to help when visually inspecting            canvas.drawText(                    Integer.toString(i),                    rectLeft + 2,                    rectTop + 2 - (int) mTextPaint.ascent(),                    mTextPaint);            rectTop += rowHeight;        }    }    private int getRowHeight() {        return (getHeight() - getPaddingTop() - getPaddingBottom()) / mNumRows;    }    public void getRectForRow(Rect rect, int row) {        final int rowHeight = getRowHeight();        final int top = getPaddingTop() + row * rowHeight;        rect.set(getPaddingLeft(),                top,                getWidth() - getPaddingRight(),                top + rowHeight);    }    void ensureRectVisible() {        getRectForRow(mTempRect, mSelectedRow);        requestRectangleOnScreen(mTempRect);    }    /* (non-Javadoc)    * @see android.view.KeyEvent.Callback#onKeyDown(int, android.view.KeyEvent)    */    public boolean onKeyDown(int keyCode, KeyEvent event) {        switch(event.getKeyCode()) {            case KeyEvent.KEYCODE_DPAD_UP:                if (mSelectedRow > 0) {                    mSelectedRow--;                    invalidate();                    ensureRectVisible();                    return true;                }                break;            case KeyEvent.KEYCODE_DPAD_DOWN:                if (mSelectedRow < (mNumRows - 1)) {                    mSelectedRow++;                    invalidate();                    ensureRectVisible();                    return true;                }                break;        }        return false;    }    @Override    public void getFocusedRect(Rect r) {        getRectForRow(r, mSelectedRow);    }    @Override    protected void onFocusChanged(boolean focused, int direction,            Rect previouslyFocusedRect) {        super.onFocusChanged(focused, direction, previouslyFocusedRect);        if (focused) {            switch (direction) {                case View.FOCUS_DOWN:                    mSelectedRow = 0;                    break;                case View.FOCUS_UP:                    mSelectedRow = mNumRows - 1;                    break;                case View.FOCUS_LEFT:  // fall through                case View.FOCUS_RIGHT:                    // set the row that is closest to the rect                    if (previouslyFocusedRect != null) {                        int y = previouslyFocusedRect.top                                + (previouslyFocusedRect.height() / 2);                        int yPerRow = getHeight() / mNumRows;                        mSelectedRow = y / yPerRow;                    } else {                        mSelectedRow = 0;                    }                    break;                default:                    // can't gleam any useful information about what internal                    // selection should be...                    return;            }            invalidate();        }    }    @Override    public String toString() {        if (mLabel != null) {            return mLabel;        }        return super.toString();    }}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91老师片黄在线观看| 免费久久精品视频| 7777精品伊人久久久大香线蕉 | 91精品国产综合久久福利| 国产福利一区二区| 亚洲永久免费av| 欧美国产一区视频在线观看| 精品视频在线视频| 成人毛片在线观看| 免费在线看成人av| 亚洲自拍偷拍麻豆| 国产精品激情偷乱一区二区∴| 日韩免费电影网站| 欧美日韩在线亚洲一区蜜芽| 成人在线视频一区| 另类小说一区二区三区| 亚洲图片欧美一区| 亚洲色图欧美激情| 欧美激情一区二区在线| 日韩欧美国产精品一区| 欧美三级电影在线看| 成人美女在线视频| 激情深爱一区二区| 蜜臀国产一区二区三区在线播放| 亚洲国产欧美一区二区三区丁香婷| 久久精品视频免费观看| 欧美大片在线观看一区二区| 欧美体内she精高潮| 色系网站成人免费| 91女神在线视频| 成人91在线观看| 高清视频一区二区| 国产成人精品免费看| 激情五月婷婷综合网| 免费不卡在线观看| 日韩av二区在线播放| 亚洲成人黄色影院| 午夜av电影一区| 亚洲成av人片观看| 午夜精品福利一区二区蜜股av| 一区二区三区精品在线| 亚洲日本va在线观看| 日韩毛片视频在线看| 国产精品成人在线观看| 国产精品欧美一级免费| 国产精品乱码人人做人人爱| 国产精品天干天干在观线| 中文字幕国产精品一区二区| 国产欧美视频在线观看| 狠狠色丁香婷婷综合| 免费高清在线视频一区·| 性感美女久久精品| 奇米四色…亚洲| 亚洲欧美日韩成人高清在线一区| 亚洲精品一线二线三线| 69堂成人精品免费视频| 一本久久综合亚洲鲁鲁五月天| 国产麻豆精品theporn| 亚洲成人第一页| 亚洲小少妇裸体bbw| 日韩精品欧美精品| 欧美大黄免费观看| 久久久五月婷婷| 一区二区中文字幕在线| 亚洲一线二线三线视频| 欧美aaa在线| 国产白丝网站精品污在线入口| 成人av在线网| 欧洲av在线精品| 欧美一区二区三区日韩视频| www久久久久| 综合欧美亚洲日本| 日日摸夜夜添夜夜添精品视频| 久久精品国产**网站演员| 成人午夜av电影| 欧美性受xxxx| 久久久久成人黄色影片| 亚洲精品视频在线看| 日本欧美韩国一区三区| 成人午夜又粗又硬又大| 色综合久久久久久久久久久| 欧美日韩性生活| 日韩午夜激情视频| 中文字幕一区二| 亚洲国产精品人人做人人爽| 日韩精品福利网| 国产真实乱子伦精品视频| 欧美aⅴ一区二区三区视频| 国产成人综合视频| 色综合天天综合网天天看片| 欧美亚洲国产一区在线观看网站| 88在线观看91蜜桃国自产| 精品国内二区三区| 国产精品蜜臀在线观看| 亚洲国产va精品久久久不卡综合| 午夜不卡在线视频| 97久久久精品综合88久久| 欧美日韩色一区| 国产日韩精品视频一区| 亚洲在线免费播放| 国模套图日韩精品一区二区| 一本大道久久a久久综合| 91精品国产综合久久久久久| 亚洲欧美日韩小说| 奇米影视在线99精品| www.在线成人| 欧美综合久久久| 欧美电影免费观看高清完整版在线| 中文字幕高清不卡| 一区二区三区欧美日韩| 国产曰批免费观看久久久| 欧美日韩久久不卡| 欧美国产日韩精品免费观看| 视频一区中文字幕国产| 综合亚洲深深色噜噜狠狠网站| 三级成人在线视频| 在线观看国产一区二区| 亚洲丝袜美腿综合| 麻豆91精品视频| 色婷婷综合久色| 综合欧美一区二区三区| 欧美bbbbb| 欧美午夜精品免费| 亚洲精品亚洲人成人网| 成人黄页在线观看| 国产精品少妇自拍| 国产成人免费av在线| 国产亚洲精品久| 亚洲一区二区三区精品在线| 激情综合网av| 欧美一区国产二区| 亚洲午夜私人影院| 欧美视频第二页| 日本女优在线视频一区二区| 在线观看国产日韩| 久久久亚洲精品一区二区三区 | 日韩欧美资源站| 国产亚洲一区二区三区| 国产亚洲精品久| 亚洲国产乱码最新视频 | 精品国产一二三| 三级不卡在线观看| 久久免费午夜影院| 国产成人在线色| www国产成人免费观看视频 深夜成人网| 成人av资源在线| 日韩精品中文字幕在线一区| 日本一区免费视频| 国产一区二区三区国产| 精品处破学生在线二十三| 麻豆免费看一区二区三区| 欧美一级理论片| 男女性色大片免费观看一区二区| av福利精品导航| 亚洲色图19p| 91在线看国产| 国产精品免费久久| 国产福利精品一区| 欧美韩国日本综合| 丰满放荡岳乱妇91ww| 中文字幕巨乱亚洲| 成人av电影在线播放| 亚洲欧美偷拍卡通变态| 成人动漫精品一区二区| 亚洲午夜免费电影| 91精品国产色综合久久不卡电影 | 日韩你懂的在线播放| 国产在线观看免费一区| 日韩影院免费视频| 秋霞影院一区二区| 国产高清视频一区| 国产精品萝li| 91久久国产综合久久| 亚洲欧洲制服丝袜| 天天色综合天天| 日韩成人午夜电影| 国产精品一区二区在线看| 久久精品国产精品青草| 国产精品一区在线| 欧美色图天堂网| 亚洲成a人片在线观看中文| 麻豆久久久久久| 在线播放国产精品二区一二区四区| 欧洲激情一区二区| 99re热视频精品| 色综合天天综合网国产成人综合天| 国产91露脸合集magnet| 国内久久婷婷综合| 亚洲1区2区3区视频| 一区二区三区久久久| 日韩高清不卡一区二区三区| 狠狠网亚洲精品| 色欧美乱欧美15图片| 欧美人体做爰大胆视频| 欧美午夜一区二区三区免费大片| 717成人午夜免费福利电影| 精品对白一区国产伦| 久久久蜜臀国产一区二区| 久久9热精品视频| 色婷婷综合五月|