I prefer you being terse and giving understandable answers than no one
answering me :p. Thanks ;)

On 4 mar, 18:09, Romain Guy <romain...@google.com> wrote:
> onkeydown: make sure your view is focusable and focused.
>
> Padding: known bug, fixed in cupcake.
>
> Sorry for being terse, sent from my phone :)
>
> On Mar 4, 2009 9:05 AM, "Cyril M" <cyrilmott...@gmail.com> wrote:
>
> Here is a skeleton of the class I'm currently working on.
> Unfortunatly, i'm stuck on two problems and it's driving me mad !
>
> The first problem is about the onKeyDown(KeyEvent) : I don't
> understand why this method isn't called while I pressed a key on the
> emulator.
> The second problem deals with padding. Indeed, I'm always creating
> widget using fake paddings in order to be sure my widget correctly
> handle those values. Unfortunatly, I tried to extend a ProgressBar and
> I had some problems because my ProgressBar is clipped.
>
> My code is :
>
> package com.niji.android.myhouse;
>
> import android.content.Context;
> import android.graphics.Canvas;
> import android.graphics.Color;
> import android.graphics.Paint;
> import android.graphics.drawable.Drawable;
> import android.util.AttributeSet;
> import android.util.Log;
> import android.view.KeyEvent;
> import android.view.MotionEvent;
> import android.widget.ProgressBar;
>
> public class ProgressWheel extends ProgressBar {
>
>        private static final String TAG_LOG = "ProgressWheel";
>        private static final Paint mPaint = new Paint();
>
>        private float oldX;
>
>        public ProgressWheel(Context context, AttributeSet attrs) {
>                this(context, attrs, 0);
>        }
>
>        public ProgressWheel(Context context, AttributeSet attrs, int
> defStyle) {
>                super(context, attrs, defStyle);
>
>                mPaint.setStrokeWidth(1.0f);
>                mPaint.setColor(Color.MAGENTA);
>                mPaint.setStyle(Paint.Style.STROKE);
>
>                setPadding(5, 15, 40, 10)
>
>        }
>
>       �...@override
>        protected synchronized void onDraw(Canvas canvas) {
>                /*
>                 * I'm not sure the onDraw(Canvas) method from ProgressBar is
> correctly
>                 * implemented. Indeed. With padding values, The progressBar
> may be
> "clipped"
>                 */
>                super.onDraw(canvas);
>                canvas.drawRect(0, 0, getWidth()-1, getHeight()-1, mPaint);
>        }
>
>   �...@override
>    public boolean onKeyDown(int keyCode, KeyEvent event) {
>                /*
>                 * I don't understand why this method is not called
>                 */
>        int progress = getProgress();
>        Log.d(TAG_LOG, "onKeyDown");
>        switch (keyCode) {
>            case KeyEvent.KEYCODE_DPAD_LEFT:
>                Log.d(TAG_LOG, "KEYCODE_DPAD_LEFT");
>                if (progress <= 0) break;
>                setProgress(progress - 1);
>                return true;
>
>            case KeyEvent.KEYCODE_DPAD_RIGHT:
>                Log.d(TAG_LOG, "KEYCODE_DPAD_RIGHT");
>                if (progress >= getMax()) break;
>                setProgress(progress + 1);
>                return true;
>        }
>
>        return super.onKeyDown(keyCode, event);
>    }
>
>       �...@override
>        public boolean onTouchEvent(MotionEvent event) {
>                Log.d(TAG_LOG, "onTouchEvent");
>                int progress = getProgress();
>
>                switch (event.getAction()) {
>                case MotionEvent.ACTION_DOWN:
>                        oldX = event.getX();
>                        break;
>                case MotionEvent.ACTION_MOVE:
>                        if (event.getX() > oldX) {
>                                setProgress(progress + 1);
>                        }
>                        else setProgress(progress - 1);
>                        oldX = event.getX();
>                        break;
>
>                default:
>                        break;
>                }
>
>                return true;
>        }
>
> }
>
> and here is my XML layout :
>
> <?xml version="1.0" encoding="utf-8"?>
>
> <RelativeLayout
>        android:id="@+id/RelativeLayout01"
>        android:layout_width="wrap_content"
>        android:layout_height="wrap_content"
>        xmlns:android="http://schemas.android.com/apk/res/android"; >
>
>        <com.mypackage.ProgressWheel
>            style="?android:attr/progressBarStyleHorizontal"
>                android:layout_centerInParent="true"
>                android:layout_margin="10px"
>                android:layout_width="fill_parent"
>                android:layout_height="wrap_content"
>                android:progress="35" />
>
> </RelativeLayout>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to