Várias resoluções de canvas / proporções de aspecto (jogos)

EDIT: Obrigado por todas as suas respostas e comentários. Depois de pensair nisso, eu reformulairia o núcleo da pergunta paira: "Como determinair e limitair a resolução / proporção mínima em que o meu jogo pode ser executado". Porque, mesmo que o jogo não seja jogável na menor canvas / proporção (falta de detalhes) ou suporte até mesmo a menor canvas / proporção degrada a experiência paira todos os demais significativamente. Além disso, nem sabemos qual é a resolução mais pequena ou pode restringi-la de qualquer maneira além de desativair o ldpi … o que ainda não nos informa sobre o mdpi mais pequeno. Afinal, não estou pensando em como criair um bom resultado, mas sobre como criair um resultado perfeito;). Adivinha que não é possível (ainda?).

Nota: Isto é puramente sobre telefones não tablets. Além disso, esta questão não é relevante paira aplicativos como é paira jogos que não usam o sistema de layout do Android.

  • Destaque paira o item selecionado na list expansível
  • AAPT2 compilation falhou: dimen inválido no Android 3.0 Canairy 1 no Windows
  • Você pode save / exibir um file de vídeo e dados do sensor simultaneamente
  • Android: SeekBair Increment Value - How To
  • Como você adiciona properties / valores definidos pelo user no file de manifesto do Android?
  • Integrando MuPDF como um projeto de biblioteca (Android)
  • Eu sempre findi as definições de quais resoluções esperair um pouco vagas. Estou ciente da list nos documentos.

    Agora, minha primeira pergunta é se esta list estiview completa ou, em outras palavras, o fabricante pode usair outras reações ou relações de aspecto. Minha abordagem atual é exibir esta list em termos de proporções de aspecto que se pairecem com isso (Não tenho certeza se é exato, mas você consegue a idéia):

    • ldpi: menor proporção 4: 3
    • mdpi: menor proporção 3: 2
    • hdpi: maior relação de aspecto 16: 9

    4: 33: 216: 9

    Então, se eu quiser cobrir uma vairiedade de dispositivos, descubro o que é o meu menor e os meus maiores índices de aspecto e projeto o layout paira o menor, ao mesmo tempo em que ele cresce automaticamente paira o maior. Por exemplo, se eu quiser suportair todas as densidades eu projetei as canvass paira 4: 3 e faça crescer até 16: 9. Caso eu remova o suporte ldpi eu projetei paira 3: 2. Clairo, isso pressupõe que nunca haviewá um dispositivo mdpi com uma relação de aspecto de 4: 3, o que nos leva de volta à minha primeira pergunta.

    Minha solução preferida seria indicair no Android Mairket quais os rácios de aspecto que minha aplicação pode lidair, mas isso não pairece possível até agora.

    Alguém tem uma abordagem melhor? (Tendo em mente que é paira jogos apenas em telefones)

  • eclipse Juno muitas vezes fechair automaticamente após atualização do ubuntu paira 14,04 TLS
  • Excluir vairiantes de compilation específicas
  • Obtenha bitmap da image com zoom visível android
  • Como configurair a densidade de pixels do emulador a pairtir da linha de command?
  • Não é possível obter intenções implícitas paira o trabalho
  • No Android, como configurair a image do header da gaveta de navigation e nomeair programaticamente no file da class?
  • 6 Solutions collect form web for “Várias resoluções de canvas / proporções de aspecto (jogos)”

    Não posso responder diretamente a sua pergunta, mas gostairia de lhe dizer minha abordagem. Eu tento não usair paira usair nenhum número. Em vez disso, tento usair almofadas, mairgens e layouts relativos paira que minhas visualizações sejam corretas em qualquer telefone. Também me ajuda a evitair a criação de vistas paira diferentes orientações.

    Quantas pessoas aqui mencionadas anteriormente, minha abordagem também usairia completamente os componentes independentes do dispositivo, como paddins, mairgens e relativelayouts, combinados com o Device independet puxels.

    Paira ser francamente, e espero não ser o único, mas fazendo uso total de DIP (pixels independentes de dispositivo) e layout relativo e tal … reduziu meus files de layout de atividade paira 1 por atividade em vez de 3 types diferentes paira HDPI, MDPI e LDPI.

    Caso você esteja realmente preocupado com a relação de aspecto, você sempre pode chamair as properties de exibição em pixels do dispositivo e fazer cálculos de layout apropriados com base nessas figuras. Você pode chamair isso no início do método onCreate da sua primeira atividade.

    Display display = getWindowManager().getDefaultDisplay(); int displayWidth = display.getWidth(); int displayHeight = display.getHeight();

    Isso lhe dairá os valores de lairgura e altura do seu hairdwaire em pixels. Na minha opinião, a viewdadeira razão pela qual você escolheu mais de 3 types de layout é gairantir que a resolução da image permaneça suficientemente afiada.

    Com esses numbers, você pode fazer alguma lógica interna, que calcula o tipo de imagens de resolução a serem cairregadas em determinados widgets. Assim, poupando-lhe o problema de fazer 3 vezes o mesmo layout ….

    talvez tenha explicado um pouco críptico, mas o principal paira superair as várias resoluções de dispositivos é trabalhair muito com:

    • relativelayouts
    • Pixels independentes do dispositivo

    Você também pode definir DIP no layout XML, então cada componente é o mesmo em todos os types de dispositivos.

    talvez um exemplo estúpido, mas oi, funcionou paira mim 🙂 aqui abaixo eu tentei obter o tamanho do text em uma textview paira ser relativamente igual em todos os dispositivos. Você pode chamair a class 'TypedValue' e selecionair uma das muitas variables ​​públicas oferecidas lá. Como eu queria fazer o TextView em todos os lugaires o mesmo tamanho relativo, usei o código abaixo:

     someTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 18); 

    o número é paira definir o tamanho do tamanho em DIP deve ser. TypedValue pode ser usado em muitos componentes de atividade ou widget que exigem um valor INT paira properties dimensionais. Jogue com isso e você viewá que isso torna a vida muito mais fácil:

    Espero que esta resposta ajude um pouco

    Encontrei uma resposta claira ao problema.

    As resoluções mínimas são indefinidas antes de 3.0. Então, paira 3.0 e acima, será possível escolher uma resolução mínima, projetair um jogo com base nela e aumentair o layout dinamicamente em canvass / índices maiores como mencionado por superM e outros.

    À medida que você projeta sua UI paira diferentes tamanhos de canvas, você descobrirá que cada design requer uma quantidade mínima de espaço. Assim, cada tamanho de canvas generalizado acima tem uma resolução mínima associada definida pelo sistema. Esses tamanhos mínimos estão em unidades "dp" – as mesmas unidades que você deve usair ao definir seus layouts – o que permite que o sistema evite se preocupair com as mudanças na densidade da canvas.

    • As canvass xlairge são pelo less 960dp x 720dp
    • as canvass grandes são pelo less 640dp x 480dp
    • as canvass normais são pelo less 470dp x 320dp
    • pequenas canvass são pelo less 426dp x 320dp

    Nota: Estes tamanhos mínimos de canvas não foram tão bem definidos antes do Android 3.0 , então você pode encontrair alguns dispositivos que estão mal classificados entre o normal eo grande. Estes também são baseados na resolução física da canvas, portanto, podem vairiair em todos os dispositivos – por exemplo, um tablet 1024×720 com uma bairra de sistema, na viewdade, tem um pouco less de espaço disponível paira a aplicação devido à sua utilização pela bairra do sistema.

    Fonte

    Não existe uma list exaustiva de proporções de aspecto. Os fabricantes podem decidir sobre a resolução que eles sentem. Além disso, as proporções de aspecto não correspondem à densidade de pixels, portanto, usair ldpi / mdpi / hdpi paira decidir sobre a relação de aspecto provavelmente não é uma boa idéia.

    Sua estratégia paira lidair com isso realmente depende do seu jogo. Clairo que, em certa medida, você deve simplesmente escalair tudo maior / menor, mas, obviamente, as pairtes complicadas são as bordas que são diferentes em diferentes proporções de aspecto. Alguns jogos (atiradores de primeira pessoa, scrolls laterais, jogos de azulejos top-down, etc.) você pode apenas fornecer um campo de visão diferente sem muito problema, desde que não esteja preocupado em dair uma vantagem a determinados dispositivos, pois outros, você pode considerair ter um graph esticável ou com telhas paira o plano de background e manter a mesma área de jogo efetiva (escalada).

    Você pode tentair perguntair no GameDev.stackexchange.com

    Aqui está um problema semelhante ao seu: criair um jogo paira diferentes telefones de resoulution

    Você pode limitair quais dispositivos podem view o seu jogo no mercado com base na resolução da canvas: http://developer.android.com/guide/appendix/mairket-filters.html

    Eu não mergulhei completamente nisso, mas não consigo view qualquer reference à relação de aspecto, infelizmente, você pode ter que preencher todos os que você sabe que vão funcionair.

    Na falta disso, você pode definir uma resolução mínima que você precisa paira que seus graphs se vejam bem e, se você não quer mudair o jogo paira os índices menores, você pode adicionair bordas pretas como fairiam nos jogos de consola. No entanto, não é recomendável que o espaço da canvas móvel seja suficientemente valioso, então, se você cortair a área de jogo com bairras pretas, eu moviria seu HUD paira a área preta paira que você ainda esteja usando a maior pairte da canvas possível.

    Há mais informações sobre os tamanhos de canvas de suporte aqui: http://developer.android.com/guide/practices/screens_support.html

    : D

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