@@ -0,0 +1,1865 @@
+%0D%0Apublic class TouchHighlightImageButton extends ImageButton %7B%0D%0A    /**%0D%0A     * %E7%84%A6%E7%82%B9%E4%B8%8E%E7%82%B9%E5%87%BB%E7%8A%B6%E6%80%81%E6%97%B6View%E7%9A%84%E8%A6%86%E7%9B%96%E5%B1%82Drawable%EF%BC%8C%E4%B8%80%E8%88%AC%E8%AE%BE%E7%BD%AE%E5%8D%8A%E9%80%8F%E6%98%8E%E7%9A%84Drawable%0D%0A     */%0D%0A    private Drawable mForegroundDrawable;%0D%0A%0D%0A    /**%0D%0A     * View%E7%9A%84%E5%A4%A7%E5%B0%8F%E8%8C%83%E5%9B%B4%E8%AE%B0%E5%BD%95%0D%0A     */%0D%0A    private Rect mCachedBounds = new Rect();%0D%0A%0D%0A    public TouchHighlightImageButton(Context context) %7B%0D%0A        super(context);%0D%0A        init();%0D%0A    %7D%0D%0A%0D%0A    public TouchHighlightImageButton(Context context, AttributeSet attrs) %7B%0D%0A        super(context, attrs);%0D%0A        init();%0D%0A    %7D%0D%0A%0D%0A    public TouchHighlightImageButton(Context context, AttributeSet attrs, int defStyle) %7B%0D%0A        super(context, attrs, defStyle);%0D%0A        init();%0D%0A    %7D%0D%0A%0D%0A    /**%0D%0A     * %E5%88%9D%E5%A7%8B%E5%8C%96%0D%0A     */%0D%0A    private void init() %7B%0D%0A        // %E9%87%8D%E7%BD%AE%E9%BB%98%E8%AE%A4%E7%9A%84%E8%83%8C%E6%99%AF%E6%A0%B7%E5%BC%8F%E5%92%8C%E5%86%85%E8%BE%B9%E8%B7%9D%0D%0A        setBackgroundColor(0);%0D%0A        setPadding(0, 0, 0, 0);%0D%0A%0D%0A        // %E8%AE%BE%E7%BD%AE%E7%82%B9%E5%87%BB%E6%97%B6%E6%98%BE%E7%A4%BA%E7%9A%84Drawable%0D%0A        StateListDrawable stateListDrawable = new StateListDrawable();%0D%0A        stateListDrawable.addState(new int%5B%5D%7Bandroid.R.attr.state_pressed%7D, new ColorDrawable(0x99000000));%0D%0A        mForegroundDrawable = stateListDrawable;%0D%0A        mForegroundDrawable.setCallback(this);%0D%0A%0D%0A    %7D%0D%0A%0D%0A    @Override%0D%0A    protected void drawableStateChanged() %7B%0D%0A        super.drawableStateChanged();%0D%0A%0D%0A        // %E6%9B%B4%E6%96%B0Drawable%E7%8A%B6%E6%80%81%E4%B8%8EView%E7%8A%B6%E6%80%81%E5%8C%B9%E9%85%8D%0D%0A        if (mForegroundDrawable.isStateful()) %7B%0D%0A            mForegroundDrawable.setState(getDrawableState());%0D%0A        %7D%0D%0A%0D%0A        // %E9%87%8D%E7%BB%98%0D%0A        invalidate();%0D%0A    %7D%0D%0A%0D%0A    @Override%0D%0A    protected void onDraw(Canvas canvas) %7B%0D%0A        super.onDraw(canvas);%0D%0A%0D%0A        //%E7%94%BBDrawable%0D%0A        mForegroundDrawable.setBounds(mCachedBounds);%0D%0A        mForegroundDrawable.draw(canvas);%0D%0A    %7D%0D%0A%0D%0A    @Override%0D%0A    protected void onSizeChanged(int w, int h, int oldw, int oldh) %7B%0D%0A        super.onSizeChanged(w, h, oldw, oldh);%0D%0A        // %E4%BF%9D%E5%AD%98View%E5%A4%A7%E5%B0%8F%E8%8C%83%E5%9B%B4%0D%0A        mCachedBounds.set(0, 0, w, h);%0D%0A    %7D%0D%0A%7D

add TouchHighlightImageButton