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 -~----------~----~----~----~------~----~------~--~---