2016-09-10 3 views
0

왜 이런 일이 일어날 지 이해할 수 없지만 그 이유와 해결 방법을 알고 싶습니다. 내 그라데이션이 모든 장치 또는 다른 화면의 갤럭시 S7의 그림처럼 보이게 할다른 화면 크기에서 내 그라디언트 색상이 같지 않습니까?

enter image description here

그라데이션의 코드 크기 :

textView = (TextView) v.findViewById(R.id.fontcolorwhite); 

    LinearGradient linearGradient = new LinearGradient(60,-70,60,70, new int[]{Color.parseColor("#00a8d9"), Color.parseColor("#4244b8"), Color.parseColor("#f1328f"), Color.parseColor("#ee3031"), Color.parseColor("#fde92d"), Color.parseColor("#009e54")},null, 
    Shader.TileMode.REPEAT); 
    textView.getPaint().setShader(linearGradient); 
+0

글쎄, 당신은 절대 픽셀 값을 사용하고 있습니다 : I 오른쪽 기울기를 가지고까지

최종 솔루션

대신 픽셀의 DP와 값으로 장난을 사용하는 것이 었습니다. 왜'dp '를 쓰지 않을까요? – Shaishav

+0

매개 변수의 값은 픽셀 단위입니까? @Shaishav – Muddz

+0

'TextView # getTextSize()' – pskink

답변

0

알려줘야는 지금 모든 장치에서 완벽하게 작동을 및 화면 크기.

float px4 = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 15, getResources().getDisplayMetrics()); 
    float px5 = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, -17f, getResources().getDisplayMetrics()); 
    float px6 = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 15, getResources().getDisplayMetrics()); 
    float px7 = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 18f, getResources().getDisplayMetrics()); 


    LinearGradient linearGradient = new LinearGradient(px4, px5, px6, px7, new int[]{Color.parseColor("#00a8d9"), Color.parseColor("#4244b8"), Color.parseColor("#f1328f"), Color.parseColor("#ee3031"), Color.parseColor("#fde92d"), Color.parseColor("#009e54")}, null, 
      Shader.TileMode.REPEAT); 
    fontcolorpickerbtn.getPaint().setShader(linearGradient); 
관련 문제