Maneira rápida de colocar imagens de 5 tamanhos em 5 pastas drawable no Android Studio

0

Eu fiz o download de um zip ic_add.zip de ícones de design de materiais. Este zip contém uma hierarquia de pastas como esta:

res --> drawable-hdpi    --> ic_add.png
    --> drawable-mdpi    --> ic_add.png
    --> drawable-xhdpi   --> ic_add.png
    --> drawable-xxhdpi  --> ic_add.png
    --> drawable-xxxhdpi --> ic_add.png

Agora, minha pergunta é: como posso colocar esses 5 ícones no resp. pastas dentro da pasta myProject / res?

i.e. ícones dentro de drawable-hdpi devem ir para myProject/res/drawable-hdpi . O mesmo para os outros. Agora eu estou escolhendo um ícone e colocando dentro de sua respectiva pasta, mas é um processo muito longo quando há muitos ícones para copiar. Então, eu quero algumas caminho mais rápido ou comando se possível. Estou usando o ubuntu 16.04

    
por Kesha 19.08.2017 / 08:40

1 resposta

0

Suponho que depois de extrair o seu arquivo em uma pasta chamada zip , você tem a seguinte estrutura de diretórios:

$ tree -F
.
├── myProject/
│   └── res/
│       ├── drawable-hdpi/
│       ├── drawable-ndpi/
│       ├── drawable-xhdpi/
│       └── drawable-xxhdpi/
└── zip/
    ├── drawable-hdpi/
    │   ├── ic_add.png
    │   └── ic_del.png
    ├── drawable-ndpi/
    │   ├── ic_add.png
    │   └── ic_del.png
    ├── drawable-xhdpi/
    │   ├── ic_add.png
    │   └── ic_del.png
    └── drawable-xxhdpi/
        ├── ic_add.png
        └── ic_del.png

Em seguida, você pode simplesmente mover todos os arquivos *.png de todos os diretórios drawable-*/ dentro de zip/ para seus respectivos diretórios drawable-*/ dentro de myProject/res/ usando o seguinte comando:

for folder in zip/drawable-*/ ; do mv "$folder"/*.png "myProject/res/$(basename $folder)" ; done

Ele percorrerá todas as pastas zip/drawable-*/ , computará o diretório de destino apropriado anexando o último componente de caminho da pasta de origem ao caminho myProject/res/ e moverá todos os arquivos *.png da pasta de origem para a pasta de destino .

Você pode alterar os globos e os caminhos da shell para se adequar ao seu ambiente real.
Você pode substituir mv por cp para copiar os arquivos em vez de movê-los.
Você pode escrever mv -i para ser perguntado antes de qualquer arquivo existente ser sobrescrito ou mv -n pular arquivos que já existem e não sobrescrever nada. Os mesmos switches existem para cp .

No entanto, observe que nem mv nem cp criam diretórios ausentes, portanto, verifique se os caminhos de destino de cada arquivo já existem.

    
por Byte Commander 19.08.2017 / 09:48