Mais um post da série "Dicas de Android". Aproveitem!
Dica 1. Densidades de tela no Android e seus DPIs.
Atualmente temos dispositivos Android de diversos tamanhos e com qualidade de tela diferentes. É importante sabermos a tabela abaixo para usar imagens adequadamente para cada um deles.
| Densidade | Dots per inch | Proporção |
|---|---|---|
| LDPI | 120dpi | 0.75 |
| MDPI | 160dpi | 1.00 |
| HDPI | 240dpi | 1.50 |
| XHDPI | 320dpi | 2.00 |
| XXHDPI | 480dpi | 3.00 |
| XXXHDPI | 640dpi | 4.00 |
Dica 2. Obter as polegadas de um aparelho. Dica de Maurício Taumaturgo.
public double getInch(Activity act) {
DisplayMetrics displayMetrics = new DisplayMetrics();
act.getWindowManager().getDefaultDisplay()
.getMetrics(displayMetrics);
double x = Math.pow(
displayMetrics.widthPixels/displayMetrics.xdpi,2);
double y = Math.pow(
displayMetrics.heightPixels/displayMetrics.ydpi,2);
double screenInch = Math.sqrt(x+y);
return screenInch;
}
Dica 3. HTML no TextView. Dica de Diego Nascimento (aluno do TECDAM)
O Android suporta algumas tags HTML dentro do componente TextView. Mas se quisermos carregar as imagens da tag <img /> usamos a classe ImageGetter.
TextView tvText = (TextView) findViewById(R.id.text);
final String textoEmHtml =
"<html><body>Html em "
+ "<b>Negrito</b> e <i>Itálico</i>"
+ "<img src='mario.png' />"
+ "Mais um texto qualquer"
+ "<img src='luigi.png' />"
+ " texto depois da imagem</body></html>";
ImageGetter imgGetter = new ImageGetter() {
public Drawable getDrawable(String source) {
BitmapDrawable drawable = null;
try {
Bitmap bmp = BitmapFactory.decodeStream(
getAssets().open(source));
drawable = new BitmapDrawable(
getResources(), bmp);
drawable.setBounds(
0, 0, bmp.getWidth(), bmp.getHeight());
} catch (IOException e) {
e.printStackTrace();
}
return drawable;
}
};
meuTextView.setText(
Html.fromHtml(textoEmHtml, imgGetter, null));
Dica 4. Customizando ActionBar
A ActionBar é utilizada como padrão navegacional do Android. Entretanto, customiza-la para com as cores da sua aplicação requer um certo esforço. Para minizar esse trabalho, é possível gerar os arquivos de recurso para personalizar a ActionBar através do site Android ActionBar Style Generator.
Dica 5. EditText com imeOptions e inpuType
A propriedade inputType do EditText indica qual o formato do teclado virtual mais adequado para a caixa de texto, enquanto a propriedade imeOptions indica o botão de ação do teclado.
<EditText android:id="@+id/editText1" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="textEmailAddress" android:imeOptions="actionDone" />
final EditText edtEmail =
(EditText)findViewById(R.id.editText1);
edtEmail.setOnEditorActionListener(
new OnEditorActionListener() {
@Override
public boolean onEditorAction(
TextView v, int actionId, KeyEvent event) {
if (v == edtEmail &&
EditorInfo.IME_ACTION_DONE == actionId) {
String email = edtEmail.getText().toString();
if (!Patterns.EMAIL_ADDRESS.matcher(email).matches()){
edtEmail.setError("Email inválido!");
}
return true;
}
return false;
}
});
Dica 6. Carregando HTML com CSS e JavaScript no WebViewSe você for carregar um arquivo HTML que está dentro do seu APK, e esse arquivo usa arquivos de CSS e JavaScript, aconselho coloca-los na pasta assets do seu projeto e carregá-los da seguinte forma:
mWebView = (WebView) v.findViewById(R.id.webView1); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); mWebView.loadDataWithBaseURL( "file:///android_asset/", "Meu Html que usa CSS e JS", "text/html", "UTF-8", null);
4br4ç05,
nglauber
4 comentários:
Olá Nelson, boa tarde,
Para carregar o conteúdo que está no seu blog com texto e imagens, você usa o EditText para disponibilizar esse conteúdo no seu aplicativo Android ? Ou é outra coisa ?
Cunprimentos
César Malainho
Oi Cesar,
Não. Utilizo uma WebView :)
4br4ç05,
nglauber
Entendi, Seria possível usar o EditText para apresentar esse conteúdo ?
Oi Cesar,
Eu nunca fiz com EditText teria realmente que testar. Mas teoricamente o TextView (superclasse de EditText) suporta algumas tags HTML, então funcionaria parcialmente.
4br4ç05,
nglauber
Postar um comentário