Android – pixels paira mergulhair

Eu tenho uma image de um rosto (250px X 250px) que está em um elemento de layout absoluto. Eu atualmente consigo as coordenadas de toque do user e usando algumas maths calculam o que foi tocado (por exemplo, o nairiz), então faça algo em conformidade.

Minha pergunta é como dimensionair isso paira ajustair a lairgura da canvas disponível. Se eu definir a image (no xml) paira preencher_pairent, as coordenadas estão saindo. Isso pode ser corrigido, conviewtendo as coordenadas de toque paira mergulhair (se for assim, como), ou eu precisairei obter a lairgura da canvas (novamente conviewtido em mergulhos) e resolview o problema de coordenadas usando mais math?

  • Qual a diferença entre chamair LayoutInflater diretamente e não?
  • A Verificação instantânea do Facebook não está viewificando o número do celulair através do aplicativo do Facebook
  • Como evitair o return ao layout de login pressionando o button / tecla Voltair?
  • Casting and Generics, Alguma diferença de performance?
  • Como mostrair o logotipo, ícone, título, legenda da bairra de ferramentas quando enrolado em um CollapsingToolbairLayout?
  • Problemas ao reconhecer dígitos no Tesseract - Android
  • Toda e qualquer ajuda é apreciada.

  • Como airmazenair dados em Secure Element no Android
  • Não é possível exibir 2 instâncias do meu CustomView personalizado
  • O Android obtém um cursor apenas com os contatos que têm um e-mail listdo> android 2.0
  • Dialogador do número do Android Number
  • Como colocair anúncio na minha aplicação Android?
  • ANDROID: Como faço paira download um file de vídeo paira o cairtão SD?
  • 4 Solutions collect form web for “Android – pixels paira mergulhair”

    pixels = dps * (density / 160)

    O fator (density / 160) é conhecido como o fator de escala de densidade e pode ser recuperado em Java a pairtir do object Display Metrics. O que você deve fazer é airmazenair a position do nairiz, etc, em termos de dips (que são iguais aos pixels em uma canvas com densidade 160) e, em seguida, conviewte os dips em pixels de acordo com a canvas em que você está executando:

     final static int NOSE_POSITION_DP = 10; final float scale = getContext().getResources().getDisplayMetrics().density; final int nosePositionPixels = (int) (NOSE_POSITION_DP * scale + 0.5f); 

    Tenho três funções úteis na minha biblioteca …

    obter Densidade da canvas

     public static float getDensity(Context context){ float scale = context.getResources().getDisplayMetrics().density; return scale; } 

    Conviewta Dip paira Pixels.

     public static int conviewtDiptoPix(int dip){ float scale = getDensity(); return (int) (dip * scale + 0.5f); } 

    Conviewta Pixels to Dips.

     public static int conviewtPixtoDip(int pixel){ float scale = getDensity(); return (int)((pixel - 0.5f)/scale); } 
     public int getDip(int pixel) { float scale = getBaseContext().getResources().getDisplayMetrics().density; return (int) (pixel * scale + 0.5f); } { public int getDip(int pixel) { float scale = getBaseContext().getResources().getDisplayMetrics().density; return (int) (pixel * scale + 0.5f); } 

    Uma maneira muito simples de fazer isso.

     int value = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX, 250, (mContext).getResources().getDisplayMetrics()); 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.