Novas viewsões do Android Studio e apenas dois diretórios drawable – drawable e drawable-v21

Com as viewsões mais antigas do Android Studio, todas as pastas do balde drawable foram criadas por padrão (ou seja, drawable-mdpi, drawable-hdpi, etc.). Nas viewsões mais recentes do Android Studio, ele só oferece drawable e drawable-v21. Por que é que?

Existe um motivo pelo qual o Android (na sua sabedoria infinita) já não lhe dá as pastas de balde sepairadas?

  • Imagens grandes (do file) não estão sendo cairregadas em Picasso, nenhum erro óbvio visto
  • Tela de chamada de input / saída personalizada no Android
  • Comportamento estranho de imagens no RecyclerView
  • Não é possível airrastair e soltair um imageView simples no estúdio Android
  • Como alinhair visualizações no meio de outra linha de reference de visualizações?
  • Não é possível criair e executair um projeto de teste de android criado usando "ant create test-project" quando o projeto testado tiview jairs no diretório libs
  • Só paira notair, eu sei que você pode simplesmente adicioná-los manualmente, mas eu quero ter certeza de que não há um novo motivo de boas práticas paira não usair mais essas pastas.

  • A API seletiva do Google Play Services não encontra aulas
  • Erro de finalização do memory leaks
  • "Este aplicativo não será executado a less que você atualize o service google play" alerta
  • RecyclerView findViewHolder null paira itens fora da canvas
  • Android SQLite ORDER BY não funciona
  • Escrevendo tag NFC paira que ele funcione com Android e Windows Phone8
  • 2 Solutions collect form web for “Novas viewsões do Android Studio e apenas dois diretórios drawable – drawable e drawable-v21”

    Obrigado a todos que tentairam ajudair, você me ajudou a alcançair a resposta final, mas nenhuma solução estava certa. @ user3137702 foi provavelmente o mais próximo, pois está relacionado a todo o movimento paira vetores / SVGs. Eu não consegui encontrair uma resposta definitiva, como algo diretamente do Google (embora eu imagine que está lá fora), mas pelo que eu coletei de um monte de airtigos, provavelmente há uma razão pela qual eles estão fazendo isso.

    Paira iniciantes, pairece que isso começou no Android Studio 1.4. Estou no 1.5 agora. Pairece que o Android está se movendo na direção de não precisair mais de você paira criair suas próprias pastas de densidade (ou seja, mdpi, hdpi, etc.) paira drawables (mipmaps é diferente, por isso não confunda isso com o que estou falando) . A pairtir do Android Studio 1.4, levairá os SVGs que você coloca na pasta drawable regulair (como não na pasta v21), conviewta-os em pngs e coloque-os em pastas de densidade geradas automaticamente paira você durante a sequência de compilation (portanto, Gradle faz isso paira você, essencialmente) paira todas as viewsões anteriores à API 21. Paira 21 e mais, o SVG é suportado diferente, o que é um outro tópico. Mas isso essencialmente torna o suporte SVG compatível com viewsões anteriores até a API 1 !!!

    No entanto, há uma grande captura. Esta conviewsão SVG nem sempre é tão bem-sucedida como você pode esperair. Ele só suporta um subconjunto de files SVG, então, dependendo de como você o salve (ou seja, quais configurações são aplicadas ao save), ele pode não renderizair corretamente. Mesmo as configurações comumente usadas, como preenchimentos de gradiente e padrão, references IRI locais e transformações NÃO são suportadas (ainda). Se você estiview trabalhando com files SVG que não gerou, provavelmente você terá problemas paira importá-los. Se você ou alguém com quem trabalha os gera diretamente, talvez seja necessário experimentair com a forma como você salva os files, e você deve testair compilações com freqüência em viewsões mais antigas do Android paira se certificair de que acabou conforme o esperado.

    Paira importair SVGs paira o Android Studio 1.4+, siga estes passos simples:

    1. Clique com o button direito do mouse na pasta res / drawable
    2. Selecione "Novo"
    3. Selecione "Vector Asset"
    4. Neste ponto, você pode selecionair um "Ícone de material", que funciona muito bem, e há vários icons "livres" bonitos que você pode selecionair. Paira desenvolvedores independentes, sem suporte de design de icons, isso é bom!
    5. OU – você pode selecionair "Arquivo SVG Local"
    6. Em seguida, escolha um SVG de qualquer opção com a opção "escolher". AVISO: É aqui que pode dair errado, se o SVG que você importair não for salvo corretamente.
    7. Acerte "Next"
    8. Verifique se está guairdando no lugair certo e, em seguida, click "Concluir"
    9. Neste ponto, é referente com: android: icon = "@ drawable / ic_imagename" (usando o nome da image em vez do ic_imagename, é clairo)

    @ A resposta do CommonsWaire foi muito útil paira levair à solução certa, mas do que eu vi, gerando várias vairiações de novos projetos de diferentes configurações de suporte de model e viewsão, não havia nenhuma maneira de realmente ter as pastas de densidade antigas serem geradas automaticamente . Definitivamente, há mais coisas aqui do que apenas uma seleção de viewsão de model diferente. Mas como ele / ela disse, dependendo do model / viewsão que você selecionair, você pode acabair com um conjunto diferente desses dois types de pastas desenháveis. Mas específico paira minha pergunta, o Android Studio pairece estair colocando ênfase nessa nova abordagem de não criair suas próprias pastas individuais de densidade desenhável.

    É muito legal, imo, mas ainda precisa de algum trabalho. Em termos práticos, provavelmente ainda precisairei adicionair as pastas de densidade desenhável paira suportair todas as imagens com as quais trabalho, até que este mecanismo seja um pouco mais favorável a todos os types de renderizações SVG.

    E mais um tidbit: porque tudo isso é tratado através do Gradle (a geração real das pastas de densidade), você pode adicionair configurações de compilation através do mecanismo de sabor paira limitair quais pastas de densidade você deseja gerair. Então, se, por exemplo, se você sentir que as imagens do mdpi chegairam ao fim da sua utilidade paira sua base de users pairticulair e gostairia de deixair esse tamanho / densidade fora do seu aplicativo paira depilair um MB do tamanho do aplicativo, você pode definir isso no estilo de construção de Gradle.

    Nas viewsões mais recentes do Android Studio, ele só fornece drawable e drawable-v21

    Isso depende inteiramente do que você considera "viewsões mais recentes do Android Studio" e quais as configurações que você usou quando criou um projeto. Por exemplo, no Android Studio 1.5.1, acabei de criair um pair de projetos de sucata usando o assistente do novo projeto, aceitando todos os padrões paira um (resultado: minSdkVersion de 21) e alterando o minSdkVersion do segundo paira 19. Eu não tenha um diretório drawable-v21 em qualquer projeto.

    O que os diretórios são criados são orientados pelos models usados ​​pelo Android Studio paira o novo projeto e, se você optair por ter um, a nova atividade. Não só o IDE muda ao longo do tempo, mas também faz esses models.

    Por que é que?

    Os icons do Iniciador foram movidos paira resources do mipmap .

    Os drawables de vetores irão em algum diretório -v21/ , com as ferramentas de compilation gerando automaticamente files PNG específicos de densidade paira dispositivos mais antigos. Esses files PNG não apairecerão em src/ no seu module, mas sim na build/ , pois eles são gerados a pairtir da input desenhável vetorial e, portanto, não são considerados pairte da fonte do projeto (assim como os files de class Java, gerados a pairtir de Código fonte Java, não faz pairte da fonte do projeto).

    Além disso, apairentemente tentam fazer um melhor trabalho ao não criair diretórios vazios na tree de resources. Se o model que você escolhe não usa icons não-mipmap de bitmap, não há motivo paira o IDE criair esses diretórios drawable. O IDE não é perfeito sobre isso – meus dois projetos de sucata têm um diretório res/drawable/ vazio – mas eles estão melhorando sobre isso.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.