Blackberry Kullanıcı Arayüzü tasarımı-özelleştirilebilir UI?

bir Blackberry uygulaması tasarlamaya çalışıyorum ve özel kullanıcı arabirimi öğelerini, mevcut olanları ve diğer olasılıkların nasıl oluşturulacağı konusunda herhangi bir kaynak olup olmadığını merak ediyorum.

özel UI ve malzeme ile birkaç iPhone uygulaması geliştirdim, bu yüzden BB world UI geliştirme açısından neler sunduğundan emin değilim.

herhangi bir ipucu, öneri veya fikir harika olurdu.

20
tarihinde sordu Maksym Gontar 2009-09-18 21:45:39
kaynak

3 ответов

Blackberry hiçbir derileri vardır, iki yolu ben cilt etkisi achive biliyorum

  • kendi temasını oluştur
  • Özel kontroller oluştur

Blackberry Tema

Oluştur

kaldırıldı ölü Imageshack bağlantı - BlackBerry tema Oluşturucu

tema oluşturucu ile ne yapabilirim? Ana özelliklerinden bazıları size izin için:

  • BlackBerry uygulama simgeleri özelleştirmek
  • Ana ekran banner görüntü ve simge/gösterge renkleri
  • değiştirin
  • kendi düğmelerinizi oluşturun
  • iletişim görünümünü özelleştirmek ve ekranlar '151940920 açılır'
  • boşta ekran
  • Özelleştirme
  • menüler ve listeler görünümünü özelleştirmek
  • telefon uygulama ekranlarını özelleştirin
  • Blackberry cihaz
  • kullanılan yazı tipleri Özelleştirme

BrileyKenney tarafından kendi kişisel Blackberry temalar oluşturmak için nasıl

bb dev journal - sadece tema!

BlackBerry Temalar Ve Animasyonlu Grafik

kötü haber-tema bütün uygulanır cihaz işletim sistemi ve her uygulama

Althought oluşturulan tema bağımsız bir yazılım tasarım ürünü olabilir, ben gelişmiş uygulama için kendi tema oluşturmak için harika bir fikir olduğunu sanmıyorum.

Tasarım Mockup

programlama guı biraz zaman alabilir ve kodlama olmadan GUI planlama bazı soruları çözmek istiyorsanız, GUI mockup çizmek isteyebilirsiniz.

kullanabilirsiniz ücretsiz BlackBerry UI ve Visio şablonlar - v1.ArtfulBits 0 .

ölü Imageshack bağlantısını kaldırıldı

kaldırılan ölü İmageshack bağlantı

özel kontrol oluşturma

özel denetim oluşturarak

yapılandırabilirsiniz
  • kontrol boyutu
  • kontrol şekli
  • kontrol arka planı (renk, resim)
  • kontrol yazı tipi (boyut, stil, renk)
  • kontrol sınırı (boyut, stil, renk)

tüm bu devletler için

  • engelli
  • normal
  • ,
  • aktif (tıklandı)

sonunda sadece ayarlayarak kontrol skinn arka plan resmi

temelleri

devsushi.com: Blackberry JDE API - kullanıcı arayüzü alan referans temelde codesnippets ve ekran görüntüleri ile, BlackBerry uı kontrolleri fikrini verecektir.

so: bir liste alanına ( böğürtlen )

yani: Blackberry için gömülü HTML kontrolü?

so: Blackberry-datetime değerini Datefield'den nasıl alabilirim?

yani: bir iPhone

gibi bakmak için bir BlackBerry uygulaması Styling

yöneticileri, düzen

hatta standart kontrolleri kullanarak, biz düzen ve istediğiniz şekilde grup gerekir, böylece biz özel yöneticileri gerekir:

Thinking BlackBerry: BlackBerry UI-bir oluşturma temel alan yöneticisi

Thinking BlackBerry: basit BlackBerry Izgara düzeni Yöneticisi

Blackberry düşünme: özel bir ekran yapma, dikey kaydırma ve daha fazlası

yani: Blackberry uygulamasında kaydırma sorunu

Peki: Blackberry Verticalfieldmanager'a bir kaydırma çubuğu nasıl ayarlanır?

kablosuz: bir ekran için özel bir düzen yöneticisi oluşturun

yani: Blackberry-kontrol tüm çocuk alanları alın

yani: Düzen Yöneticisi'nde kaydırma iptal

yani: BlackBerry özel düzenleri oluşturma

yani: Blackberry ayarı Tam Ekran bir RichtextField pozisyonu

yani: alan yöneticileri ile eğlenceli

yani: BlackBerry-özel menü araç çubuğu

yani: BlackBerry-özel merkezli döngüsel HorizontalFieldManager

Özel kontroller

Özel kontroller yazma hakkında makaleler kümesi:

düşünme BlackBerry: BlackBerry UI-basit bir özel alan

Coderholic: Blackberry özel düğme alanı

kablosuz: BBStorm için kendi VirtualKeyboard oluşturun

kablosuz: onay kutuları ile ListField

CodeProject: BlackBerry özel alanı olarak bir XY grafik/arsa oluşturma

yani: Blackberry-özel boyut EditField

yani: Blackberry-nasıl BasicEditField sınır eklemek için?

yani: Blackberry-Labelfield arka plan rengini ayarlama

yani: yatay yönetici odak üzerinde alt alanların rengini değiştirmek için

Yani: Richtextfield, TextField için arka plan ve yazı tipi renkleri ayarlama

yani: Blackberry Java: TextField olmadan caret?

SO: Image Map-like Blackberry Control-CLDC uygulama

yani: Blackberry-büyük metin ile tek satır BasicEditField

yani: Blackberry-özel BubbleChartField

yani: Blackberry-onay kutuları ile listeden öğeleri kontrol alın

yani: BlackBerry-özel Tarih Alanı oluşturma

yani: BlackBerry-alt menü nasıl oluşturulur?

SO: BlackBerry-nasıl ifadeler ile bir etiket gösterebilir??

SO: BlackBerry-yazma modu göstergesi programlı olarak göster

grafik, animasyon

SO: BlackBerry - ekranda resim çizin

yani: Blackberry-arka plan görüntüsü / animasyon / OS 4.5.0

yani: animasyon ile Blackberry yükleme ekranı

yani: nasıl Blackberry Storm anti Aliasing ayarlamak için?

yani: böğürtlen kırpma bölgesi/alanı ayarlama

yani: BlackBerry Bitmap veya Encodedımage kullanmak daha iyi mi?

yani: Blackberry-alanlar düzeni animasyon

yazı tipleri

kablosuz: yazı tiplerini Değiştir bir BlackBerry uygulaması

Geliştirici dergiler: yazı tipleri

Peki: blackberry uygulaması için özel bir yazı tipi nasıl oluştururum

peki: nasıl Blackberry labelfield metin için bir yazı tipi ayarlamak için?

peki: nasıl Blackberry UI daha çekici hale getirmek için?

Peki: blackberry etiket alanının yazı tipi rengini dinamik olarak nasıl değiştirebilirim?

yani: BlackBerry-Unicode metin ekranı

69
cevap Maksym Gontar 2017-05-23 15:19:40
kaynak

kalın 9000

standart medya uygulama cilt örneği

kaldırıldı ölü ImageShack bağlantı - dilimlenmiş medya uygulaması

kaldırıldı ölü İmageShack bağlantı - dilimlenmiş görüntüler

düğmelerle görüntüleri eşlemek için ButtonField uzantısını kullanın:

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);
    }
}
  • Verticalfieldmanagers içinde HorizontalFieldManagers koymak ve tersi
  • normal, odaklanmış ve aktif Devletler için farklı görüntüler kullanın
  • özel şekilli düğmelere ihtiyacınız varsa, bunları boya() yöntemi geçersiz kılma, sonra süper olarak çizebilirsiniz.boya()

kodun bir parçası:

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
cevap Maksym Gontar 2015-08-25 12:40:29
kaynak

' maalesef çok iyi değil. En iyi bilgi kaynağı genellikle Google, aradığınız belirli konuyla bloglara bağlanıyor.

sadece BB GUI kodu yazmaya başlıyorsanız, Yöneticisini ve alanını sınıflarını tanımanızı şiddetle tavsiye ederim çünkü muhtemelen birçok özel uzantı yazmak zorunda kalacaksınız.

4
cevap Ben S 2009-09-18 21:54:25
kaynak