0

sqlite データベースからデータを取得できます。ただし、画像の URL が null の場合、他のものが表示されなくなります。

try{
                name.setText(nameString);
                school.setText(schoolString);
                psupervisor.setText(info.getPsupervisor());
                pdate.setText(info.getPdate());
                a.setChecked(Boolean.parseBoolean(info.getPtick1()));
                b.setChecked(Boolean.parseBoolean(info.getPtick2()));
                c.setChecked(Boolean.parseBoolean(info.getPtick3()));
                pcomment1.setText(info.getPcomment1());
                psignature1.setImageBitmap(resizeSignatureBitmap(info.getPsignature1()));
                pcomment2.setText(info.getPcomment2());
                psignature2.setImageBitmap(resizeSignatureBitmap(info.getPsignature2()));
                pdate2.setText(info.getPdate2());
                d.setChecked(Boolean.parseBoolean(info.getPtick4()));
                e.setChecked(Boolean.parseBoolean(info.getPtick5()));
                f.setChecked(Boolean.parseBoolean(info.getPtick6()));
                pcomment3.setText(info.getPcomment3());
                psignature3.setImageBitmap(resizeSignatureBitmap(info.getPsignature3()));
                pcomment4.setText(info.getPcomment4());
                psignature4.setImageBitmap(resizeSignatureBitmap(info.getPsignature4()));
                Log.d("PREPOST: ", log2);
                db.close();
            }
            catch(Exception ex){}

        }

たとえば、psignature2 が null の場合、pdate2 から pcomment4 までの項目は表示されません。try-catch でクラッシュしなかったため、エラーの原因を発見するのが遅くなりました

ビットマップ解像度を調整するための私の方法:

public Bitmap resizeSignatureBitmap(String imagePath){

     BitmapFactory.Options options = new BitmapFactory.Options();
    InputStream is = null;
    try {
            is = new FileInputStream(imagePath);
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    BitmapFactory.decodeStream(is,null,options);
    try {
            is.close();
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
    try {
            is = new FileInputStream(imagePath);
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    // here w and h are the desired width and height
    options.inSampleSize = Math.max(options.outWidth/w, options.outHeight/h);
    // bitmap is the resized bitmap
    Bitmap bitmap = BitmapFactory.decodeStream(is,null,options);
    is=null;
     return bitmap;
 }

したがって、null画像のURLがあっても、他の画像の表示を妨げないようにする方法を誰かが提案できますか? ありがとう!

4

1 に答える 1

0

resizeSignatureBitmap最後にチェックを適用して、天候がbitmap返されるかどうかを確認できますnull。その場合、nullデフォルトのビットマップを返すことができます。

または、画像を個別に設定することもできますtry catch blocks

于 2013-01-14T07:26:03.010 に答える