2014-05-21 4 views
0

내 코드의 요구 사항 중 하나는 알파 값을 사용한다는 것입니다. 앞으로 어떤 시점에서이 값을 쉽게 변경할 수 있도록 응용 프로그램을 프로그래밍하고 싶습니다.리소스 폴더에 소수 자릿수 저장

본인의 이해는 리소스가 이러한 목적으로 특별히 제작 된 것입니다. 알파는 0에서 1 사이 여야합니다.

정수 리소스 폴더에서 값을 1에서 100 사이의 값으로 설정 한 다음 코드에서 100으로 나누는 것보다 더 훌륭한 해결책이 있는지 궁금합니다.

현재 코드 : https://stackoverflow.com/a/8780360/1014849 을하지만 필요한 수레, 복식은 그 방법을 통해 사용할 수 없습니다 :

<?xml version="1.0" encoding="utf-8"?> 
<resources>  
<!-- choose a value for alpha, it will be divided by 100. 
valid values lie between 0 and 100.--> 
<item name = "exponential_filter_alpha" format="">9</item>  
</resources> 

나는 여기에 비슷한 질문을 보았다.

+3

당신이 설명 할 수'float'? –

+0

제 생각에 double이 충분할 때 float를 사용하거나 int가 작동 할 때 double을 사용하지 않으려 고합니다. 그냥 부유물을 사용하는 것이 좋습니까? – broomi

답변

1

귀하의 의견을 토대로 귀하의 질문을 성능 문제로 이해합니다.

float 대신 리소스에 int을 저장하고 사용하면 성능이 눈에 띄지 않아야합니다. 그 노트에 따르면 나는 int을 저장하고 100으로 나누면 항상 플로트를 저장할 수있을 때 어리석은 일이라고 생각합니다. 또한 당신이 당신의 int을 나눌 때 암시 적으로 어쨌든 double으로 변환 될 것입니다.

alpha 값의 값을 사용한다고 가정하면 정밀도는 1에서 100까지만 가능하며 float를 사용하면 매우 정확하며 alpha 값으로도 적당합니다. 당신은 Float or Double?

+0

정확합니다. 성능 질문입니다. 고맙습니다. 링크가 도움이되었고 귀하의 의견에 감사드립니다. 나는 모범 사례 pov에서 그걸로 가고 있었다. – broomi

1

정수 리소스가 있습니다. 여기를 참조하십시오 : Resource Types - More Types. 그런 다음 액티비티에서 getResources().getInteger(R.integer.exponential_filter_alpha)으로 전화하여 정수 값을 얻은 다음 요청한대로 100으로 나눕니다.

+0

고마워요, 제가 현재 사용하고있는 것이지만보다 우아한 방법이 있는지 궁금해했습니다. – broomi

+2

나는 당신이 그걸 어떻게 더 우아하게하는지 이해하지 못합니다. 매우 간단하고 다른 영역에서 하드 코딩하는 것과는 대조적으로 한 곳에서 모든 가치를가집니다. 모든 값을 다른 파일에 둘 필요는 없습니다. ''과''을 모두'res/values' 폴더에있는 일반적인 constants.xml 또는 config.xml 파일에 넣을 수 있습니다. 궁금한 점이 있으면 Google에서 어떻게 [값 폴더]를 구성했는지 확인할 수 있습니다 (http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.3_r1/frameworks/). base/core/res/res/values ​​/)를 입력하십시오. – Chris

+0

예, 우리는 리소스 폴더 경로와 관련하여 동의합니다. 불행히도 내가 할 수없는 리소스 폴더에 double을 저장할 수 있다면 완벽 할 것입니다. 나는이 문제에 대한 해결책을 찾고 있었다. 리소스 폴더에 수레를 저장하는 것이 가장 좋습니다 (외관상으로는). Chris님께 진심으로 감사드립니다. – broomi

0

을 읽어보십시오

그냥 사용 : 당신이 대신 double``사용해야하는 이유

<item name="prim_alpha" format="float" type="dimen">0.87</item>