如何将图像作为摘要添加到Android首选项

时间:2016-01-26 08:56:22

标签: android android-preferences preferenceactivity

我想创建一个常规<thead> <tr> <th colspan="2">Nummers</th> <th>Duur</th> <th>Beluisteren</th> </tr> <tr> <th colspan="2">Album: Nevermind</th> <th>Jaar: 1991</th> </tr> </thead> <tbody> <tr> <td>1</td> <td><a href="nevermind.html#smells">Smells Like Teen Spirit</a></td> <td>4.37</td> </tr> <tr> <td>2</td> <td><a href="nevermind.html#inbloom">In Bloom</a></td> <td>4.14</td> </tr> <tr> <td>3</td> <td><a href="nevermind.html#come">Come As You Are</a></td> <td>3.39</td> </tr> <tr> <td>4</td> <td><a href="nevermind.html#breed">Breed</a></td> <td>3.03</td> </tr> ,它将首选项的值作为该首选项的摘要。

有没有办法将图片添加为首选项的值(例如,连接首选项将为连接状态设置绿灯,或者为断开连接状态设置红灯)?当摘要不是简单的文本时,我不确定如何做这样的事情。

1 个答案:

答案 0 :(得分:0)

首先,您可以将图像保存到SD卡并优先记录其路径;

第二个解决方案,您可以使用Base64将图像编码为字符串并将其保存为普通字符串,当从首选项中检索它时使用Base64将其解码为Bitmap。就像这样:

public Bitmap stringtoBitmap(String string){
    Bitmap bitmap=null;
    try {
        byte[]bitmapArray;
        bitmapArray=Base64.decode(string, Base64.DEFAULT);
        bitmap=BitmapFactory.decodeByteArray(bitmapArray, 0, bitmapArray.length);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return bitmap;
}


public String bitmaptoString(Bitmap bitmap){
    String string=null;
    ByteArrayOutputStream bStream=new ByteArrayOutputStream();
    bitmap.compress(CompressFormat.PNG,100,bStream);
    byte[]bytes=bStream.toByteArray();
    string=Base64.encodeToString(bytes,Base64.DEFAULT);
    return string;
}