Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] Imagem ou shape?

Valeu Suelen pelas dicas, eu não conhecia esse site...

pra fazer botões para menu,actionbar... você usa http://android-ui-utils.googlecode.com/hg/asset-studio/dist/index.html ?

Obrigado pelas informação Jonas, você usa o http://android-ui-utils.googlecode.com/hg/asset-studio/dist/index.html pra fazer os seus botões ?

Diogo Henrique
(83)87344178
Rede Sociais: 
Meditando Provérbios: 





Em 1 de novembro de 2012 13:10, Jonas Alves <jonasfa@gmail.com> escreveu:

Android não suporta SVG.
O máximo que você pode fazer é renderizar em tempo de execução, o que não não é prático e nem se integra bem com o framework do Android.

On Nov 1, 2012 12:47 PM, "Suelen Goularte Carvalho" <suelengcarvalho@gmail.com> wrote:
Olá Diogo, sei que existe o http://www.iconesbr.net/ também.

Uma ideia também é procurar/criar imagens com extensão svg (http://pt.wikipedia.org/wiki/SVG), que é vetorizada e não perde a qualidade quando ampliada, assim pode evitar-se ter várias imagens, em resoluções diferentes etc. 

Abraços,
--




2012/11/1 Diogo Henrique <diogjp10@gmail.com>
Suelen, obrigado pelos links. Você conhece algum site que disponibiliza ícones para APP's ?
eu uso o http://www.iconfinder.com/ , mas existe um serviço apenas para APP's ?


Diogo Henrique
Rede Sociais: 
Meditando Provérbios: 





Em 1 de novembro de 2012 11:33, Suelen Goularte Carvalho <suelengcarvalho@gmail.com> escreveu:
Olá,

Quando eu estudei shapes tive a mesma dúvida, o que é melhor, shapes ou imagens, levantei que:
  • Shapes são menores (tamanho de arquivo mesmo) do que imagens, logo, seu app no geral será menor.
  • Quando o degradê do shape é muito distinto (as vezes nem sendo mesmo), por exemplo, branco e rosa choque, ou quando usa mais de duas cores e distintas, pode ser que no telefone não fique com a mesma suavidade de uma imagem, ou seja, será possível ver as linhas de cores que montam o degradê, também depende aqui a qualidade da tela do device, etc.
  • As cores no celular são diferentes da web, então para achar a cor do shape, vale a pena baixar um app que você encontre a cor e te dê o RGB dela.
Pensando sobre estes (poucos) itens que pensei, decidi usar imagens para ícones e para os degradês para evitar correr o risco de ficar muito aparente estas linhas que montam o degradê, para cores sólidas acho que shape vai bem. Apesar que se usar imagem em parte é bom usar em tudo para ter mais controle sobre as cores e etc.

No entanto, na que estudei, me propus montar todo (ou quase todo) meu app com shapes (inclusive o logo na splash screen), lá tem degradê e sólidos. No meu celular, eu consigo, bem sutilmente, ver as linhas dos degradês da minha app, e as cores nem são tão distintas. Na próxima versão vou provavelmente usar imagens e o 9 patch.

Tem também o app exemplo que criei para a apresentação que fiz no TDC sobre Shapes https://github.com/SuelenGC/TDC2012-Shapes e os slides http://www.slideshare.net/suelengc/tdc2012-android-deixando-sua-interface-mais-bonita-com-shapes


Abraços,
--




2012/11/1 Cleber - Android Developer <clebaori@gmail.com>
Neste seu exemplo eu ia de shape.

exemplo que utilizo.



Em 1 de novembro de 2012 10:02, Italo Naia <italonaia@gmail.com> escreveu:

lucio mesmo se o shape atender a necessidade? o 9patch é a melhor opção?


2012/11/1 luciofm <luciofm@gmail.com>
9 patch.

Lúcio Maciel
luciofm@gmail.com


2012/11/1 Beneti <beneti@beneti.com.br>:
> Pessoal,
>
> no layout que chegou, tem um botão estilizado. Qual a melhor técnica? Montar
> uma imagem ou fazer com shape?
>
> Não é nada demais, apenas bordas arredondadas e um degradê.
>
> --
>
>

--



--
 
 

--
 
 

--
 
 

--
 
 

--
 
 

--
 
 

--
 
 

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Re: [androidbrasil-dev] Imagem ou shape?

Android não suporta SVG.
O máximo que você pode fazer é renderizar em tempo de execução, o que não não é prático e nem se integra bem com o framework do Android.

On Nov 1, 2012 12:47 PM, "Suelen Goularte Carvalho" <suelengcarvalho@gmail.com> wrote:
Olá Diogo, sei que existe o http://www.iconesbr.net/ também.

Uma ideia também é procurar/criar imagens com extensão svg (http://pt.wikipedia.org/wiki/SVG), que é vetorizada e não perde a qualidade quando ampliada, assim pode evitar-se ter várias imagens, em resoluções diferentes etc. 

Abraços,
--




2012/11/1 Diogo Henrique <diogjp10@gmail.com>
Suelen, obrigado pelos links. Você conhece algum site que disponibiliza ícones para APP's ?
eu uso o http://www.iconfinder.com/ , mas existe um serviço apenas para APP's ?


Diogo Henrique
Rede Sociais: 
Meditando Provérbios: 





Em 1 de novembro de 2012 11:33, Suelen Goularte Carvalho <suelengcarvalho@gmail.com> escreveu:
Olá,

Quando eu estudei shapes tive a mesma dúvida, o que é melhor, shapes ou imagens, levantei que:
  • Shapes são menores (tamanho de arquivo mesmo) do que imagens, logo, seu app no geral será menor.
  • Quando o degradê do shape é muito distinto (as vezes nem sendo mesmo), por exemplo, branco e rosa choque, ou quando usa mais de duas cores e distintas, pode ser que no telefone não fique com a mesma suavidade de uma imagem, ou seja, será possível ver as linhas de cores que montam o degradê, também depende aqui a qualidade da tela do device, etc.
  • As cores no celular são diferentes da web, então para achar a cor do shape, vale a pena baixar um app que você encontre a cor e te dê o RGB dela.
Pensando sobre estes (poucos) itens que pensei, decidi usar imagens para ícones e para os degradês para evitar correr o risco de ficar muito aparente estas linhas que montam o degradê, para cores sólidas acho que shape vai bem. Apesar que se usar imagem em parte é bom usar em tudo para ter mais controle sobre as cores e etc.

No entanto, na que estudei, me propus montar todo (ou quase todo) meu app com shapes (inclusive o logo na splash screen), lá tem degradê e sólidos. No meu celular, eu consigo, bem sutilmente, ver as linhas dos degradês da minha app, e as cores nem são tão distintas. Na próxima versão vou provavelmente usar imagens e o 9 patch.

Tem também o app exemplo que criei para a apresentação que fiz no TDC sobre Shapes https://github.com/SuelenGC/TDC2012-Shapes e os slides http://www.slideshare.net/suelengc/tdc2012-android-deixando-sua-interface-mais-bonita-com-shapes


Abraços,
--




2012/11/1 Cleber - Android Developer <clebaori@gmail.com>
Neste seu exemplo eu ia de shape.

exemplo que utilizo.



Em 1 de novembro de 2012 10:02, Italo Naia <italonaia@gmail.com> escreveu:

lucio mesmo se o shape atender a necessidade? o 9patch é a melhor opção?


2012/11/1 luciofm <luciofm@gmail.com>
9 patch.

Lúcio Maciel
luciofm@gmail.com


2012/11/1 Beneti <beneti@beneti.com.br>:
> Pessoal,
>
> no layout que chegou, tem um botão estilizado. Qual a melhor técnica? Montar
> uma imagem ou fazer com shape?
>
> Não é nada demais, apenas bordas arredondadas e um degradê.
>
> --
>
>

--



--
 
 

--
 
 

--
 
 

--
 
 

--
 
 

--
 
 

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Re: [androidbrasil-dev] Erro: "...constraint failed" Ao inserir valores no Sqlite


public class BDadapter {
// TABELA AGENDA
public static final String TABELA_AGENDA = "agenda";

public static final String COLUNA_ID_AGENDA = "_id";
public static final String COLUNA_TITULO_AGENDA = "titulo";
public static final String COLUNA_HORA_INICIAL_AGENDA = "hora_inicial";
public static final String COLUNA_MINUTO_INICIAL_AGENDA = "minuto_inicial";
public static final String COLUNA_HORA_FINAL_AGENDA = "hora_final";
public static final String COLUNA_MINUTO_FINAL_AGENDA = "minuto_final";
public static final String COLUNA_VOLUME_AGENDA = "volume";
public static final String COLUNA_STATUS_AGENDA = "status";
public static final String COLUNA_RETORNO_SMS_AGENDA = "retorno_sms";
public static final String COLUNA_ID_SMS_AGENDA = "id_sms";
// ANTIGA TABELA REPETIR
public static final String COLUNA_SEGUNDA_REPETIR = "segunda";
public static final String COLUNA_TERCA_REPETIR = "terca";
public static final String COLUNA_QUARTA_REPETIR = "quarta";
public static final String COLUNA_QUINTA_REPETIR = "quinta";
public static final String COLUNA_SEXTA_REPETIR = "sexta";
public static final String COLUNA_SABADO_REPETIR = "sabado";
public static final String COLUNA_DOMINGO_REPETIR = "domingo";
// TABELA LISTA DE EXCEÇÕES
public static final String TABELA_EXCECOES = "excecoes";
public static final String COLUNA_ID_EXCECOES = "_id";
public static final String COLUNA_CONTATO_EXCECOES = "contato";
public static final String COLUNA_STATUS_EXCECOES = "status";
public static final String COLUNA_ID_CATEGORIA_EXCECOES = "id_categoria";
// TABELA CATEGORIA (EXCECOES)
public static final String TABELA_CATEGORIA = "categoria";
public static final String COLUNA_ID_CATEGORIA = "_id";
public static final String COLUNA_DESCRICAO_CATEGORIA = "descricao";
// TABELA SMS - RETORNO SMS
public static final String TABELA_SMS = "sms";
public static final String COLUNA_ID_SMS = "_id";
public static final String COLUNA_DESCRICAO_SMS = "descricao";
public static final String COLUNA_TEXTO_SMS = "texto";
public static final String COLUNA_ID_DESTINO_SMS = "destino";
// SQL PARA CRIAR TABELAS
private static final String CATEGORIA_CREATE_TABLE = "CREATE TABLE "
+ TABELA_CATEGORIA + "(" 
+ COLUNA_ID_CATEGORIA + " INTEGER PRIMARY KEY AUTOINCREMENT, " 
+ COLUNA_DESCRICAO_CATEGORIA + " TEXT);";
private static final String SMS_CREATE_TABLE = "CREATE TABLE "
+ TABELA_SMS + "(" 
+ COLUNA_ID_SMS + " INTEGER PRIMARY KEY AUTOINCREMENT, " 
+ COLUNA_DESCRICAO_SMS + " TEXT, " 
+ COLUNA_TEXTO_SMS + " TEXT ," 
+ COLUNA_ID_DESTINO_SMS + " INTEGER, "
+ " FOREIGN KEY ( " + COLUNA_ID_DESTINO_SMS + " )  REFERENCES " + TABELA_CATEGORIA + " (" + COLUNA_ID_CATEGORIA
+ " ) ON DELETE RESTRICT ON UPDATE CASCADE);";
private static final String EXCECOES_CREATE_TABLE = "CREATE TABLE "
+ TABELA_EXCECOES + "(" 
+ COLUNA_ID_EXCECOES + " INTEGER PRIMARY KEY AUTOINCREMENT, " 
+ COLUNA_CONTATO_EXCECOES + " INTEGER,"
+ COLUNA_ID_CATEGORIA_EXCECOES + " INTEGER,"
+ COLUNA_STATUS_EXCECOES + " BOOLEAN,"
+ " FOREIGN KEY ( " + COLUNA_ID_CATEGORIA_EXCECOES + " )  REFERENCES " + TABELA_CATEGORIA + " (" + COLUNA_ID_CATEGORIA
+ " ) ON DELETE RESTRICT ON UPDATE CASCADE);";
private static final String AGENDA_CREATE_TABLE = "CREATE TABLE "
+ TABELA_AGENDA + "(" 
+ COLUNA_ID_AGENDA + " INTEGER PRIMARY KEY AUTOINCREMENT, " 
+ COLUNA_TITULO_AGENDA + " TEXT," 
+ COLUNA_HORA_INICIAL_AGENDA + " INTEGER," 
+ COLUNA_MINUTO_INICIAL_AGENDA + " INTEGER,"  
+ COLUNA_HORA_FINAL_AGENDA + " INTEGER,"  
+ COLUNA_MINUTO_FINAL_AGENDA + " INTEGER,"  
+ COLUNA_VOLUME_AGENDA + " INTEGER ,"
+ COLUNA_RETORNO_SMS_AGENDA + " BOOLEAN ,"
+ COLUNA_STATUS_AGENDA + " BOOLEAN ,"
+ COLUNA_SEGUNDA_REPETIR + " BOOLEAN ," 
+ COLUNA_TERCA_REPETIR + " BOOLEAN ,"
+ COLUNA_QUARTA_REPETIR + " BOOLEAN ,"
+ COLUNA_QUINTA_REPETIR + " BOOLEAN ,"
+ COLUNA_SEXTA_REPETIR + " BOOLEAN ,"
+ COLUNA_SABADO_REPETIR + " BOOLEAN ,"
+ COLUNA_DOMINGO_REPETIR + " BOOLEAN ,"
+ COLUNA_ID_SMS_AGENDA + " INTEGER,"
+ " FOREIGN KEY ( " + COLUNA_ID_SMS_AGENDA + " )  REFERENCES " + TABELA_SMS + " (" + COLUNA_ID_SMS
+ " ) ON DELETE RESTRICT ON UPDATE CASCADE);";
private DatabaseHelper mDbHelper;
private SQLiteDatabase mDb;
 
private static final String BD_NOME = "bd";
private static final int BD_VERSAO = 1;
private final Context contexto;
private static class DatabaseHelper extends SQLiteOpenHelper{

public DatabaseHelper(Context context) {
super(context, BD_NOME, null, BD_VERSAO);
// TODO Auto-generated constructor stub
}

@Override
public void onOpen(SQLiteDatabase db) {
// TODO Auto-generated method stub
super.onOpen(db);
if (!db.isReadOnly())
   {
     db.execSQL("PRAGMA foreign_keys=ON;");
   }

}


@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(CATEGORIA_CREATE_TABLE);
db.execSQL(EXCECOES_CREATE_TABLE);
db.execSQL(SMS_CREATE_TABLE);
db.execSQL(AGENDA_CREATE_TABLE);
Log.i("BANCO DE DADOS", "BANCO CRIADO COM SUCESSO!");
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
Log.i("BANCO DE DADOS", "Atualizando o banco de dados da versão " + oldVersion+ " para " + newVersion);
db.execSQL("DROP TABLE IF EXISTS " + TABELA_CATEGORIA);
db.execSQL("DROP TABLE IF EXISTS " + TABELA_EXCECOES);
db.execSQL("DROP TABLE IF EXISTS " + TABELA_SMS);
db.execSQL("DROP TABLE IF EXISTS " + TABELA_AGENDA);
onCreate(db);
}
}
public BDadapter(Context ctx) {
this.contexto = ctx;
}

public BDadapter open() throws SQLException {
mDbHelper = new DatabaseHelper(contexto);
mDb = mDbHelper.getWritableDatabase();
return this;
}

public void close() {
mDbHelper.close();
mDb.close();
}
// METODOS P/ INSERIR NO BD
public long inserirAgenda(String titulo, int hinicial, int minicial, int hfinal, int mfinal, int valor_volume, boolean sms, boolean[] repetir, int id_sms,boolean status){
ContentValues values= new ContentValues();
values.put(COLUNA_TITULO_AGENDA, titulo);
values.put(COLUNA_HORA_INICIAL_AGENDA, hinicial);
values.put(COLUNA_MINUTO_INICIAL_AGENDA, minicial);
values.put(COLUNA_HORA_FINAL_AGENDA, hfinal);
values.put(COLUNA_MINUTO_FINAL_AGENDA, mfinal);
values.put(COLUNA_VOLUME_AGENDA, valor_volume);
values.put(COLUNA_RETORNO_SMS_AGENDA, sms);
//values.put(COLUNA_STATUS_AGENDA, "true");
values.put(COLUNA_SEGUNDA_REPETIR, repetir[0]);
values.put(COLUNA_TERCA_REPETIR, repetir[1]);
values.put(COLUNA_QUARTA_REPETIR, repetir[2]);
values.put(COLUNA_QUINTA_REPETIR, repetir[3]);
values.put(COLUNA_SEXTA_REPETIR, repetir[4]);
values.put(COLUNA_SABADO_REPETIR, repetir[5]);
values.put(COLUNA_DOMINGO_REPETIR, repetir[6]);
values.put(COLUNA_ID_SMS_AGENDA, id_sms);
Log.i("BANCO DE DADOS", "Valores inseridos com sucesso na tabela Agenda!");
return mDb.insert(TABELA_AGENDA, null, values);
}
public long inserirSMS(String descricao, String texto){
ContentValues values= new ContentValues();
values.put(COLUNA_DESCRICAO_SMS, descricao);
values.put(COLUNA_TEXTO_SMS, texto);
Log.i("BANCO DE DADOS", "Valores inseridos com sucesso na tabela SMS!");
return mDb.insert(TABELA_SMS, null, values);
}
// METODOS P/ CONSULTAR NO BD
public Cursor consultaTodosSMS(){
return mDb.query(TABELA_SMS, new String[]{}, null, null, null, null, null);
}
public Cursor consultaTodosAgenda(){
return mDb.query(TABELA_AGENDA, new String[]{}, null, null, null, null, null);
}
}

--
 
 

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Re: [androidbrasil-dev] Erro: "...constraint failed" Ao inserir valores no Sqlite

Interessante vermos todo o codigo do banco.
Outra, chave estrangeira 'e aceita apartir de uma certa versao do sqllite. Entao tem que ser visto isso tambem. Eu creio.
Vlw.
Em 01/11/2012 12:51, "gabriel.molter@gmail.com" <gabriel.molter@gmail.com> escreveu:
>
> Como foi falado, o erro esta num constraint, e você pode conseguir criar o banco de depois na hora de inserir vai dar erro.
>
> revise sua  FOREIGN KEY
>
> ------------------------------------------------------------------
> Att. Gabriel Molter
> http://twitter.com/gabriel_molter
> gabriel dot molter at gmail dot com
> GNU/Linux User #511488
> -------------------------------------------------------------------
>
>
>
> Em 1 de novembro de 2012 12:45, Bruno Milhan <brunomilhan2@gmail.com> escreveu:
>
>> Não estou conseguindo achar o erro... O banco cria com sucesso... O
>> problema é só na hora de inserir os valores... Nesse meu caso a chave
>> estrangeira esta correta.
>>
>> Estou iniciando a função:
>>
>> public void onOpen(SQLiteDatabase db) {
>>                         // TODO Auto-generated method stub
>>                         super.onOpen(db);
>>                         if (!db.isReadOnly())
>>                     {
>>                       db.execSQL("PRAGMA foreign_keys=ON;");
>>                     }
>>
>>                 }
>>
>> Mesmo assim esta dando problema...
>>
>>
>> O SQlite no android realmente nao grava valores boolean?
>>
>> Obrigado
>>
>> --
>>
>>
>
> --
>  
>  

--
 
 

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Re: [androidbrasil-dev] [OFF] - Indicação e curriculo

www.ceviu.com.br 


Sempre recebo e-mail com vagas na area de TI


Em 29 de outubro de 2012 15:34, Buiu <buiucardoso@gmail.com> escreveu:
Tranquilo, está correto. acabou faltando essa informação.

Agradeço a todos que puderem ajudar.

Obrigado.


Em 29 de outubro de 2012 14:54, Pedro Subutzki <Pepeu> <falecompepeu@gmail.com> escreveu:

Eu falei mais por querer ajudar.
Informar o local onde vc reside já ajuda a filtrar as propostas, a final não faz sentido vc receber uma proposta de uam empresa de Manaus se você mora em São Paulo. :D


--
Abraços,
Pedro Subutzki
__________________________________________
HADI - Makes SQLite in Android easy and simple
https://github.com/PepeuCps/Hadi


Em 29 de outubro de 2012 14:23, Buiu <buiucardoso@gmail.com> escreveu:
ok, iria encaminhar para quem pedisse. mas irei disponibilizar aqui.


Em 29 de outubro de 2012 14:20, Pedro Subutzki <Pepeu> <falecompepeu@gmail.com> escreveu:
Faltaram informações como:
- Local onde vc mora
- Seu nivel de experiencia (jr, pl, sr)
- Graduação/Cursos

--
Abraços,
Pedro Subutzki
__________________________________________
HADI - Makes SQLite in Android easy and simple
https://github.com/PepeuCps/Hadi




Em 29 de outubro de 2012 14:09, Cristian Cardoso <buiucardoso@gmail.com> escreveu:

Boa Tarde!

Estou me colocando a disposição do mercado, se alguém souber e puder indicar, por favor me encaminhe um email que encaminho meu currículo.

Conhecimentos em:

Desenvolvimento Mobile (Android)

Desenvolvimento Web (PHP)


Obrigado.

Cristian Cardoso

--
 
 




--
 
 



--
Abraço
Cristian Cardoso
App CTN Car: goo.gl/NokLH

--
 
 




--
 
 



--
Abraço
Cristian Cardoso
App CTN Car: goo.gl/NokLH

--
 
 



--
Att.
Diego Ampessan
Microsoft MTA

www.diegoampessan.com.br


Os computadores são incrivelmente rápidos, precisos e burros; Os homens são incrivelmente lentos, imprecisos e brilhantes; Juntos, seu poder ultrapassa os limites da imaginação  - "Albert Einstein "

--
 
 

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Re: [androidbrasil-dev] Erro: "...constraint failed" Ao inserir valores no Sqlite

Como foi falado, o erro esta num constraint, e você pode conseguir criar o banco de depois na hora de inserir vai dar erro.


revise sua  FOREIGN KEY

------------------------------------------------------------------
Att. Gabriel Molter
http://twitter.com/gabriel_molter
gabriel dot molter at gmail dot com
GNU/Linux User #511488
-------------------------------------------------------------------



Em 1 de novembro de 2012 12:45, Bruno Milhan <brunomilhan2@gmail.com> escreveu:
Não estou conseguindo achar o erro... O banco cria com sucesso... O
problema é só na hora de inserir os valores... Nesse meu caso a chave
estrangeira esta correta.

Estou iniciando a função:

public void onOpen(SQLiteDatabase db) {
                        // TODO Auto-generated method stub
                        super.onOpen(db);
                        if (!db.isReadOnly())
                    {
                      db.execSQL("PRAGMA foreign_keys=ON;");
                    }

                }

Mesmo assim esta dando problema...


O SQlite no android realmente nao grava valores boolean?

Obrigado

--



--
 
 

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Re: [androidbrasil-dev] Imagem ou shape?

Olá Diogo, sei que existe o http://www.iconesbr.net/ também.


Uma ideia também é procurar/criar imagens com extensão svg (http://pt.wikipedia.org/wiki/SVG), que é vetorizada e não perde a qualidade quando ampliada, assim pode evitar-se ter várias imagens, em resoluções diferentes etc. 

Abraços,
--




2012/11/1 Diogo Henrique <diogjp10@gmail.com>
Suelen, obrigado pelos links. Você conhece algum site que disponibiliza ícones para APP's ?
eu uso o http://www.iconfinder.com/ , mas existe um serviço apenas para APP's ?


Diogo Henrique
Rede Sociais: 
Meditando Provérbios: 





Em 1 de novembro de 2012 11:33, Suelen Goularte Carvalho <suelengcarvalho@gmail.com> escreveu:
Olá,

Quando eu estudei shapes tive a mesma dúvida, o que é melhor, shapes ou imagens, levantei que:
  • Shapes são menores (tamanho de arquivo mesmo) do que imagens, logo, seu app no geral será menor.
  • Quando o degradê do shape é muito distinto (as vezes nem sendo mesmo), por exemplo, branco e rosa choque, ou quando usa mais de duas cores e distintas, pode ser que no telefone não fique com a mesma suavidade de uma imagem, ou seja, será possível ver as linhas de cores que montam o degradê, também depende aqui a qualidade da tela do device, etc.
  • As cores no celular são diferentes da web, então para achar a cor do shape, vale a pena baixar um app que você encontre a cor e te dê o RGB dela.
Pensando sobre estes (poucos) itens que pensei, decidi usar imagens para ícones e para os degradês para evitar correr o risco de ficar muito aparente estas linhas que montam o degradê, para cores sólidas acho que shape vai bem. Apesar que se usar imagem em parte é bom usar em tudo para ter mais controle sobre as cores e etc.

No entanto, na que estudei, me propus montar todo (ou quase todo) meu app com shapes (inclusive o logo na splash screen), lá tem degradê e sólidos. No meu celular, eu consigo, bem sutilmente, ver as linhas dos degradês da minha app, e as cores nem são tão distintas. Na próxima versão vou provavelmente usar imagens e o 9 patch.

Tem também o app exemplo que criei para a apresentação que fiz no TDC sobre Shapes https://github.com/SuelenGC/TDC2012-Shapes e os slides http://www.slideshare.net/suelengc/tdc2012-android-deixando-sua-interface-mais-bonita-com-shapes


Abraços,
--




2012/11/1 Cleber - Android Developer <clebaori@gmail.com>
Neste seu exemplo eu ia de shape.

exemplo que utilizo.



Em 1 de novembro de 2012 10:02, Italo Naia <italonaia@gmail.com> escreveu:

lucio mesmo se o shape atender a necessidade? o 9patch é a melhor opção?


2012/11/1 luciofm <luciofm@gmail.com>
9 patch.

Lúcio Maciel
luciofm@gmail.com


2012/11/1 Beneti <beneti@beneti.com.br>:
> Pessoal,
>
> no layout que chegou, tem um botão estilizado. Qual a melhor técnica? Montar
> uma imagem ou fazer com shape?
>
> Não é nada demais, apenas bordas arredondadas e um degradê.
>
> --
>
>

--



--
 
 

--
 
 

--
 
 

--
 
 

--
 
 

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS