Conception de l'Interface utilisateur Blackberry-interface utilisateur personnalisable?

j'essaie de concevoir une Application Blackberry et je me demande s'il y a des ressources sur la façon de créer des éléments d'interface utilisateur personnalisés, skin existants et quelles autres possibilités existent?

j'ai développé quelques applications iPhone avec L'interface utilisateur personnalisée et tout, donc je ne suis pas sûr de ce que BB world offre en termes de développement de L'interface utilisateur.

n'importe quels conseils, suggestions ou idées seraient grands.

20
demandé sur Maksym Gontar 2009-09-18 21:45:39
la source

3 ответов

il n'y a pas de peau dans Blackberry, deux façons que je sais pour obtenir l'effet de peau sont

  • créer son propre thème
  • créer des contrôles personnalisés

Créer Thème BlackBerry

retiré morts Imageshack lien - BlackBerry Theme Builder

Que pouvez-vous faire avec Theme Builder? Certaines de ses principales fonctionnalités vous permettent de:

  • Personnaliser l'application pour BlackBerry icônes
  • Modifier l'écran d'Accueil de la bannière de l'image et l'icône/indicateur de couleurs
  • Créez vos propres boutons
  • personnaliser l'apparence des écrans de dialogue et pop up
  • personnaliser un écran inactif
  • personnaliser l'apparence des menus et des listes
  • personnaliser les écrans des applications téléphoniques
  • personnaliser les polices utilisées sur L'appareil BlackBerry

comment créer vos propres thèmes Blackberry personnels par BrileyKenney

bb dev journal-juste le thème!

BlackBerry Thèmes & Dessins Animés

mauvaises nouvelles-le thème est appliqué à l'ensemble système D'exploitation de l'appareil et chaque application

Bien que created theme puisse être un produit de conception de Logiciel autonome, Je ne pense pas que ce soit une bonne idée de créer son propre thème pour l'application développée.

Maquettes De Conception

gui de programmation peut prendre un certain temps et dans le cas où vous voulez résoudre certaines questions dans la planification GUI sans codage, vous pouvez vouloir dessiner GUI mockup.

vous pouvez utiliser BlackBerry gratuitement INTERFACE utilisateur Prototypage Gabarits Visio - v1.0 de ArtfulBits.

removed dead Imageshack link

supprimé lien D'Imageshack

la Création d'un contrôle personnalisé

en créant le contrôle personnalisé, vous pouvez configurer

  • contrôle de la taille
  • forme de contrôle
  • fond de contrôle (Couleur, image)
  • police de contrôle (taille, style, Couleur)
  • bordure de contrôle (taille, style, Couleur)

tout cela pour les États

  • désactivé
  • normal
  • focalisé
  • active (cliqué)

à la fin, vous pouvez simplement écorcher votre contrôle en réglant image de fond

de base

devsushi.com: BlackBerry JDE API-référence de champ D'Interface utilisateur donnera essentiellement l'idée de l'existant Blackberry ui contrôles, avec codesnippets et screenshots.

donc: ajouter des articles à un ListField ( BlackBerry )

alors: contrôle HTML intégré pour Blackberry?

DONC: Blackberry - comment obtenir la valeur de type datetime de DateField?

SO: Styling une Application BlackBerry pour ressembler à un iPhone

les Gestionnaires, la mise en page

même en utilisant des commandes standard, Nous avons besoin de mettre en page et de grouper comme nous le voulons, donc nous avons besoin de gestionnaires personnalisés:

Thinking BlackBerry: Blackberry UI-Creating a gestionnaire de base sur le terrain

Thinking BlackBerry: simple BlackBerry Grid Layout Manager

penser BlackBerry: faire un écran personnalisé, défilement vertical et plus

SO: problème de défilement dans L'application Blackberry

alors: comment mettre un ScrollBar à la VerticalFieldManager dans Blackberry?

Sans Fil: créer un gestionnaire de mise en page personnalisé pour un écran

SO: Blackberry - obtenez tous les champs de contrôle enfant

so: Cancel scrolling in Layout Manager

SO: créer des mises en page personnalisées dans BlackBerry

so: Blackberry setting the position D'un RichtextField En Plein écran

alors: S'amuser avec les gestionnaires de terrain

SO: BlackBerry-barre d'Outils menu personnalisé

SO: BlackBerry-custom centered cyclic HorizontalFieldManager

contrôles douaniers

ensemble d'articles sur l'écriture de contrôles douaniers:

Thinking BlackBerry: BlackBerry UI - A simple custom field

Coderholic: Blackberry Custom Button Field

Sans Fil: créez votre propre VirtualKeyboard pour BBStorm

Sans Fil: ListField avec des cases à cocher

Codeprojet: création D'un graphique XY comme un champ personnalisé BlackBerry

SO: Blackberry-Custom size EditField

alors: Blackberry - comment ajouter border à BasicEditField?

SO: Blackberry-définition LabelField couleur de fond

SO: Blackberry changer la couleur des champs enfant sur la gestion horizontale focus

SO: définition des couleurs de fond et de police pour RichTextField, TextField

alors: Blackberry Java: TextField sans le caret?

DONC: l'Image de la Carte-comme Blackberry Contrôle - CLDC Application

DONC: Blackberry seule ligne BasicEditField avec un grand texte

DONC: BlackBerry-custom BubbleChartField

SO: Blackberry - obtenir vérifié des éléments de la liste avec des cases à cocher

SO: BlackBerry - créer un champ date personnalisé

alors: BlackBerry - comment créer un sous-menu?

alors: BlackBerry-Comment puis-je montrer un Label avec des émoticônes??

DONC: BlackBerry - Afficher le mode de frappe de l'indicateur par programme

le Graphisme, l'animation

SO: BlackBerry-draw image on the screen

SO: Blackberry-image de fond / animation RIM OS 4.5.0

SO: BlackBerry-Chargement écran avec animation

alors: comment configurer L'anti-Aliasing dans Blackberry Storm?

DONC: Blackberry réglage de la zone de découpe/zone

DONC: Est-il préférable d'utiliser Bitmap ou EncodedImage dans BlackBerry?

DONC: Blackberry - les champs de présentation de l'animation

Polices

sans Fil: Changement de police de caractères dans une application BlackBerry

journaux de développeurs: polices de caractères

SO: comment créer une police personnalisée pour une application blackberry

alors: comment définir une police de caractères pour LabelField text dans Blackberry?

alors: comment rendre Blackberry UI plus attrayant?

Alors: comment changer dynamiquement la couleur de police du champ BlackBerry label?

DONC: BlackBerry - Unicode de l'affichage du texte

69
répondu Maksym Gontar 2017-05-23 15:19:40
la source

exemple d'application sur support standard skin on Bold 9000

retiré morts ImageShack lien tranches application Multimédia

retiré morts ImageShack lien - des images découpées

utiliser extention de ButtonField à la carte des images avec des boutons:

class BitmapButtonField extends ButtonField {
    Bitmap mNormal;
    Bitmap mFocused;
    Bitmap mActive;

    int mWidth;
    int mHeight;

    public BitmapButtonField(Bitmap normal, Bitmap focused, 
        Bitmap active) {
        super(CONSUME_CLICK);
        mNormal = normal;
        mFocused = focused;
        mActive = active;
        mWidth = mNormal.getWidth();
        mHeight = mNormal.getHeight();
        setMargin(0, 0, 0, 0);
        setPadding(0, 0, 0, 0);
        setBorder(BorderFactory
                    .createSimpleBorder(new XYEdges(0, 0, 0, 0)));
        setBorder(VISUAL_STATE_ACTIVE, BorderFactory
                .createSimpleBorder(new XYEdges(0, 0, 0, 0)));
    }

    protected void paint(Graphics graphics) {
        Bitmap bitmap = null;
        switch (getVisualState()) {
        case VISUAL_STATE_NORMAL:
            bitmap = mNormal;
            break;
        case VISUAL_STATE_FOCUS:
            bitmap = mFocused;
            break;
        case VISUAL_STATE_ACTIVE:
            bitmap = mActive;
            break;
        default:
            bitmap = mNormal;
        }
        graphics.drawBitmap(0, 0, bitmap.getWidth(), bitmap.getHeight(),
                bitmap, 0, 0);
    }

    public int getPreferredWidth() {
        return mWidth;
    }

    public int getPreferredHeight() {
        return mHeight;
    }

    protected void layout(int width, int height) {
        setExtent(mWidth, mHeight);
    }
}
  • mettre HorizontalFieldManagers à L'intérieur VerticalFieldManagers et vice versa
  • utiliser des images différentes pour des états normaux, focalisés et actifs
  • si vous avez besoin d'un bouton de forme personnalisée, vous pouvez les dessiner dans le gestionnaire de remplacement de la méthode paint (), après super.peinture (la)

reste du code:

class Scr extends MainScreen implements FieldChangeListener {
    Bitmap mBmpHeader = Bitmap.getBitmapResource("header.png");
    Bitmap mBmpCover = Bitmap.getBitmapResource("cover.png");
    Bitmap mBmpTitle = Bitmap.getBitmapResource("title.png");
    Bitmap mBmpTimeline = Bitmap.getBitmapResource("timeline.png");
    Bitmap mBmpLeftside = Bitmap.getBitmapResource("leftside.png");
    Bitmap mBmpPrevNrm = Bitmap.getBitmapResource("btn_prev_normal.png");
    Bitmap mBmpPlayNrm = Bitmap.getBitmapResource("btn_play_normal.png");
    Bitmap mBmpPauseNrm = Bitmap.getBitmapResource("btn_pause_normal.png");
    Bitmap mBmpStopNrm = Bitmap.getBitmapResource("btn_stop_normal.png");
    Bitmap mBmpNextNrm = Bitmap.getBitmapResource("btn_next_normal.png");
    Bitmap mBmpPrevFcs = Bitmap.getBitmapResource("btn_prev_focused.png");
    Bitmap mBmpPlayFcs = Bitmap.getBitmapResource("btn_play_focused.png");
    Bitmap mBmpPauseFcs = Bitmap.getBitmapResource("btn_pause_focused.png");
    Bitmap mBmpStopFcs = Bitmap.getBitmapResource("btn_stop_focused.png");
    Bitmap mBmpNextFcs = Bitmap.getBitmapResource("btn_next_focused.png");
    Bitmap mBmpRightside = Bitmap.getBitmapResource("rightside.png");
    VerticalFieldManager mMainManager;
    HorizontalFieldManager mHeaderManager;
    HorizontalFieldManager mCoverManager;
    HorizontalFieldManager mTitleManager;
    HorizontalFieldManager mTimelineManager;
    HorizontalFieldManager mToolbarManager;
    BitmapField mHeader;
    BitmapField mCover;
    BitmapField mTitle;
    BitmapField mTimeline;
    BitmapField mLeftside;
    BitmapField mRightside;
    BitmapButtonField mBtnPrev;
    BitmapButtonField mBtnPlay;
    BitmapButtonField mBtnPause;
    BitmapButtonField mBtnStop;
    BitmapButtonField mBtnNext;
    public Scr() {
        add(mMainManager = new VerticalFieldManager());
        addHeader();
        addCover();
        addTitle();
        addTimeline();
        addToolbar();
    }
    private void addHeader() {
        mMainManager.add(mHeaderManager = new HorizontalFieldManager());
        mHeaderManager.add(mHeader = new BitmapField(mBmpHeader));
    }
    private void addCover() {
        mMainManager.add(mCoverManager = new HorizontalFieldManager());
        mCoverManager.add(mCover = new BitmapField(mBmpCover));
    }
    private void addTitle() {
        mMainManager.add(mTitleManager = new HorizontalFieldManager());
        mTitleManager.add(mTitle = new BitmapField(mBmpTitle));
    }
    private void addTimeline() {
        mMainManager.add(mTimelineManager = new HorizontalFieldManager());
        mTimelineManager.add(mTimeline = new BitmapField(mBmpTimeline));
    }
    private void addToolbar() {
        mMainManager.add(mToolbarManager = new HorizontalFieldManager());
        mToolbarManager.add(mLeftside = new BitmapField(mBmpLeftside));
        mToolbarManager.add(mBtnPrev = new BitmapButtonField(mBmpPrevNrm,
                mBmpPrevFcs, mBmpPrevFcs));
        mToolbarManager.add(mBtnPlay = new BitmapButtonField(mBmpPlayNrm,
                mBmpPlayFcs, mBmpPlayFcs));
        mBtnPlay.setChangeListener(this);
        mBtnPause = new BitmapButtonField(mBmpPauseNrm, mBmpPauseFcs,
                mBmpPauseFcs);
        mBtnPause.setChangeListener(this);
        mToolbarManager.add(mBtnStop = new BitmapButtonField(mBmpStopNrm,
                mBmpStopFcs, mBmpStopFcs));
        mToolbarManager.add(mBtnNext = new BitmapButtonField(mBmpNextNrm,
                mBmpNextFcs, mBmpNextFcs));
        mToolbarManager.add(mRightside = new BitmapField(mBmpRightside));
    }
    public void fieldChanged(Field field, int context) {
        if (mBtnPlay == field)
            play();
        else if (mBtnPause == field)
            pause();
    }
    private void pause() {
        mToolbarManager.replace(mBtnPause, mBtnPlay);
    }
    private void play() {
        mToolbarManager.replace(mBtnPlay, mBtnPause);
    }
}
5
répondu Maksym Gontar 2015-08-25 12:40:29
la source

le ressources ne sont pas très bonnes malheureusement. La meilleure source d'information est généralement Google lien vers les blogs avec le sujet spécifique que vous recherchez.

si vous ne faites que commencer à écrire du code GUI BB, je vous recommande vivement de connaître les classes Manager et Field car vous devrez probablement en écrire de nombreuses extensions personnalisées.

4
répondu Ben S 2009-09-18 21:54:25
la source