동료 프로그래머! 나는 새로운 ... 당신이 도울 수 있기를 바랍니다!Android : 데이터베이스에 이미지에 대한 변경되지 않은 참조를 저장하는 중
So. 현재 사용자가 내 res/drawable/폴더에 저장 한 이미지 세트에서 네 가지 이미지를 선택한 다음 해당 항목을 데이터베이스의 항목으로 저장할 수있는 응용 프로그램을 개발 중입니다. 그러나 사용자가 이미지를 요청할 때 이미지 4 개를 다시 표시 할 수 있어야하며, 이미지를 저장하는 가장 좋은 방법은 현재 설정이 이후에 나에게 적합하지 않기 때문입니다.
지금 당장은 각 이미지에 대해 데이터베이스에 R.java int 식별자를 실제로 삽입하므로 데이터베이스에 img1 (int), img2 (int), img3 (int), img4 (int). 그런 다음 쿼리를 작성할 때 R.drawable.someImage 대신 해당 값을 사용합니다.
잘 작동합니다. 제외 ... 내 res/drawable 폴더에 새 이미지를 추가하면 모든 drawable ID가 변경됩니다! 그런 다음 데이터베이스에있는 ID가 잘못되어 일부는 잘못된 이미지를 가져오고 일부는 NullPointerExceptions를 throw합니다.
사용자가 다운로드 한 후에 새로운 이미지로 앱을 업데이트 할 수 있기 때문에 문제가됩니다. 동적으로 선택할 수 있도록 이미지를 저장하는 방법은 무엇입니까? 그렇지만 다시 참조 할 수 있습니까?
AssetManagers의 기능에 대해 조금 자세히 설명해 주시겠습니까? 물론 API를 살펴 봤지만 어쨌든 다른 프로그래머보다 더 오래 걸립니다. 기본적으로 이미지를 원시 데이터로 저장하고 AssetManager를 사용하여 해당 데이터에 액세스 할 때 식별자가 필요 없다고 말하고 있습니까? 당신의 도움을 주셔서 감사합니다! – Haley
AssetManager : 응용 프로그램의 원시 자산 파일에 대한 액세스를 제공합니다. 따라서 모든 리소스/자산 파일 (비트 맵, XML)을 원시 데이터 스트림으로 열 수 있습니다. 실제로 이것은 귀하의 경우와 같이 이미지에만 유용합니다. –
특정 방식으로 이미지를 저장할 필요가 없습니다. 이미지를 그대로 유지합니다 (* .png 파일). AssetManager에 이름 (예 : "drawable/image.png") 만 지정하면 데이터 스트림이 반환됩니다. 파일을 열고 파일에서 데이터를 읽는 것과 같습니다. –