Latest web development tutorials

Recursos Android gestão (recursos)

Há muitas coisas usados ​​para construir um aplicativo Android excelente. Além de codificar o aplicativo, você precisa se concentrar em uma variedade de recursos, como você usa uma variedade de conteúdo estático, como bitmaps, cores definição de layout, cordas de interface de usuário, animação e assim por diante. Estes recursos são geralmente colocados em res / subdiretório independente do projeto.

Esta seção do tutorial vai aprender a organizar seus recursos de aplicativos, especifique recursos alternativos, e acessá-los em sua aplicação.


recursos organizacionais em eclipse

Você terá que ser colocado em cada recurso sob subdiretório específico do seu res do projecto / diretório. Por exemplo, este é um projeto de nível de arquivo simples:

MyProject/
    src/  
        MyActivity.java  
    res/
        drawable/  
            icon.png  
        layout/  
            activity_main.xml
            info.xml
        values/  
            strings.xml 

res / contém todos os recursos em vários subdiretórios. Aqui está um recurso de imagem, dois recursos de layout e um arquivo de recurso de cadeia. A tabela a seguir dá uma detalhada nos res do projeto / recursos de suporte de diretório.

anuário Tipo de recurso
anim / arquivo XML que define a propriedade de animação. Eles são salvos em res / / pasta anim, por tipo de acesso R.anim
cor / arquivo XML que define a lista de estado de cor. Eles são salvos em res / / pasta de cor, por tipo de acesso R.color
drawable / Os arquivos de imagem, como .png, .jpg, .gif, ou arquivo XML, é compilado como um bitmap, a lista de estado, formas, imagens animadas. Eles são salvos em res / / pasta drawable, por tipo de acesso R.drawable
layout / UI personalizada layout do arquivo XML. Eles são salvos em res / / pasta de layout, por tipo de acesso R.layout
Menu / arquivos XML do menu de aplicativos personalizados, como o menu de opções, menus de contexto, sub-menus. Eles são salvos em res / / pasta do menu, por tipo de acesso R.menu
raw / Todos os arquivos são salvos em sua forma original. Precisamos R.raw.filename chamado ID de recursos, para abrir o arquivo raw chamando Resource.openRawResource ()
valores / arquivos XML contêm valores simples (como strings, inteiros, cor, etc.). Aqui estão alguns recursos sob as convenções de nomenclatura da pasta. arrays.xml em nome de uma variedade de recursos, por meio de tipo R.array do acesso; integers.xml representa um número inteiro de recursos acessados ​​através R.integer classe; recursos bools.xml em nome de valores booleanos, o tipo de acesso de R.bool; recursos colors.xml em nome da cor, acessada através da classe R.color; dimens.xml representantes dimensionar valores, através do tipo R.dimen do acesso; strings.xml representa um recurso de cadeia, através do tipo R.string do acesso; representantes styles.xml recursos estilo, por tipo de acesso R.style
xml / Chamando Resources.getXML () para ler arquivos XML arbitrários em tempo de execução. Vários arquivos de configuração podem ser salvos runtime aqui

Recursos alternativos

Seu aplicativo precisa fornecer recursos para apoiar uma configuração alternativa de um dispositivo específico. Por exemplo, você precisa fornecer uma imagem alternativa de recursos para diferentes resoluções de tela, proporcionando uma corda recursos alternativos para diferentes idiomas. Em tempo de execução, Android detecta a configuração do dispositivo atual, e carregar os recursos apropriados para uma aplicação.

Para identificar um conjunto de recursos alternativos para a configuração específica, seguindo os passos de:

  • Criar uma nova res diretório / baixo para <resource_name> _ <config_qualifier> são nomeados. Aqui resources_name quaisquer recursos mencionados na tabela, como layout e fotos. qualificador vai determinar que os recursos para utilizar a configuração personalizada. Você pode ver a documentação oficial para uma lista completa dos diferentes tipos de qualificador recursos.
  • Economizando recursos alternativos em resposta a este diretório. Esses arquivos de recursos deve mostrar o nome do arquivo de recurso padrão é consistente com os seguintes exemplos, no entanto, estes documentos irão determinar o conteúdo da substituição. Por exemplo: Enquanto arquivo da foto nomear o mesmo, mas a resolução de tela de a resolução da imagem será maior.

Aqui está um exemplo, para especificar o padrão de imagem da tela e de alta resolução de substituição de imagem.

MyProject/
   src/
    main/
    java/
       MyActivity.java  
       res/
          drawable/  
            icon.png
            background.png
        drawable-hdpi/  
            icon.png
            background.png  
        layout/  
            activity_main.xml
            info.xml
        values/  
            strings.xml

Aqui está outro exemplo, para especificar o idioma layout padrão e layouts alternativos língua árabe.

MyProject/
   src/
    main/
    java/
       MyActivity.java  
      res/
         drawable/  
            icon.png
            background.png
        drawable-hdpi/  
            icon.png
            background.png  
        layout/  
            activity_main.xml
            info.xml
        layout-ar/
            main.xml
        values/  
            strings.xml

O acesso aos recursos

No desenvolvimento de aplicações, temos acesso a recursos definidos, através de código ou através de arquivos XML. As seções seguintes descrevem como acessar esses recursos separadamente, em dois cenários.

No código para acessar recursos

Quando o aplicativo Android é compilado para gerar uma classe R, que contém o ID e todos os res / recursos de diretório. Você pode usar a classe R, + pelo nome do recurso subclasse ou usar diretamente a identificação do recurso para acessar recursos.

Exemplos

res de Acesso / drawable / myimage.png, e configurá-lo para o ImageView, você usaria o seguinte código:

ImageView imageView = (ImageView) findViewById(R.id.myimageview);
imageView.setImageResource(R.drawable.myimage);

A primeira linha de código aqui para obter R.id.myimageview myimageview definido de ImageView no arquivo layout. A segunda linha com R.drawable.myimage para obter a imagem em res / drawable em uma subpasta chamada myimage.

Exemplos

Considere um exemplo em que res / valores / strings.xml definidos da seguinte forma:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string  name="hello">Hello, World!</string>
</resources>

Agora você pode usar o ID do objeto msg de TextView ID de recurso para definir o texto, como segue:

TextView msgTextView = (TextView) findViewById(R.id.msg);
msgTextView.setText(R.string.hello);

Exemplos

Considere o seguinte definição da res de layout / layout / activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent" 
   android:layout_height="fill_parent" 
   android:orientation="vertical" >

   <TextView android:id="@+id/text"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Hello, I am a TextView" />

   <Button android:id="@+id/button"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Hello, I am a Button" />

</LinearLayout>

O código do aplicativo irá carregar o layout atividade, onCreate () como segue:

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <color name="opaque_red">#f00</color>
   <string name="hello">Hello!</string>
</resources>

Acesso em XML

Considere o seguinte XML arquivo de recurso res / valores / strings.xml, que contém um recurso de cor e um recurso de cadeia -

<?xml version="1.0" encoding="utf-8"?>
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:textColor="@color/opaque_red"
    android:text="@string/hello" />

Agora, você pode usar esses recursos no ficheiro de esquema seguinte para definir a cor do texto e conteúdo de texto:

<code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;EditText xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:textColor="@color/opaque_red"
    android:text="@string/hello" /&gt;
</code>

Agora, se você voltar para a seção anterior para explicar a "Olá mundo!" Instância, posso confirmar que nesta seção, todos têm uma melhor compreensão do conceito. Portanto, eu recomendo fortemente para voltar a olhar para os exemplos anteriores, e eu uso uma visão diferente do uso básico de recursos.