2014-07-20 2 views
2

나는 새로운 Android 프로그래머입니다. 현재 Greendao를 사용 중입니다. 특정 속성 추가 메서드 만 제공하는 것으로 나타났습니다. 내 엔티티에 다른 사용자 정의 속성 유형 (예 : 그림)을 추가하는 방법이 있는지 궁금합니다. 미리 감사드립니다. greendao에서 맞춤 속성 유형을 추가하는 방법

+1

당신이 stackoverflow를 처음 사용하는 분 : 답변을 수락하는 것을 잊지 마세요, 그것이 당신의 문제/질문을 해결하십시오. 대답이 충분하지 않거나 열린 질문이있는 경우 언제든지 의견을 남기십시오. – AlexS

답변

3

greendao는 오픈 소스이므로 이러한 사용자 정의 속성 유형을 구현하고 기본 SQLite 데이터 유형에 매핑 할 수 있습니다. 하지만 그렇게해서는 안됩니다!

  1. greendao의 새 버전/릴리스를 사용하고자 할 때마다 솔루션을 greendao 소스에 병합해야합니다.
  2. Greendao는 내가 이미 알고있는 모든 SQLite-datatypes의 특성을 알고 있습니다. 당신의 엔티티의 KEEP-SECTION에서

    Entity entity = schema.addEntity("MyTest"); 
    entity.addByteArrayProperty("picture"); 
    

    당신이 변환 방법을 추가 할 수 있습니다 :

    public static byte[] bitmap2bytes(Bitmap bitmap) { 
        ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
        bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream); 
        return stream.toByteArray(); 
    } 
    
    public static Bitmap bytes2Bitmap(byte[] byteArray) { 
        return BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length); 
    } 
    

    그리고 마지막으로 사용을

당신이 ByteArray -property를 사용할 수있는 사진이나 기타 복잡한 데이터를 저장하려면 :

myTestObj.setPicture(MyTest.bitmap2bytes(bitmap)); 

Bitmap bmp = MyTest.bytes2bitmap(myTestObj.getPicture()); 

비고 :는 사진이나 다른 큰 데이터의 경우에는 장치의 파일로 데이터를 저장하고 문자열 속성을 사용하여 데이터베이스에서 해당 파일의 경로를 저장하는 방식을 따를 수 .

관련 문제