小编Dan*_*iel的帖子

如何刷新GridView?

我有一个与Google教程非常相似的GridView,除了我想在运行时添加ImageViews(通过子活动).结果还可以,但View的布局搞砸了:GridView没有填充其父级的内容,我需要做些什么才能正确设计它?

这里添加孩子的代码:

public void initializeWorkbench(GridView gv, Vector<String> items) {
        Prototype.workbench.setDimension(screenWidth, divider.height()+workbenchArea.height());
        Prototype.workbench.activateWorkbench();
        // this measures the workbench correctly
        Log.d(Prototype.TAG, "workbench width: "+Prototype.workbench.getMeasuredWidth());
        // 320
        Log.d(Prototype.TAG, "workbench height: "+Prototype.workbench.getMeasuredHeight());
        // 30
        ImageAdapter imgAdapter = new ImageAdapter(this.getContext(), items);
        gv.setAdapter(imgAdapter);
        gv.measure(screenWidth, screenHeight);
        gv.requestLayout();
        gv.forceLayout();
        Log.d(Prototype.TAG, "gv width: "+gv.getMeasuredWidth());
        // 22
        Log.d(Prototype.TAG, "gv height: "+gv.getMeasuredHeight());
        // 119
        Prototype.workbench.setDimension(screenWidth, divider.height()+workbenchArea.height());
    }
}
Run Code Online (Sandbox Code Playgroud)

工作台中的activateWorkbench,setDimension和measure(GridView上方的LinearLayout):

public void activateWorkbench() {
    if(this.equals(Prototype.workbench)) {
        this.setOrientation(VERTICAL);
        show = true;
        measure();
    }
}

public void setDimension(int w, int h) {
    width = …
Run Code Online (Sandbox Code Playgroud)

xml layout android gridview

30
推荐指数
7
解决办法
7万
查看次数

BitmapFactory.decodeStream无异常返回null

我尝试从服务器加载远程图像,并且由于stackoverflow上的大量代码示例,我有一个解决方案,可以在3个图像中的2个中运行.我真的不知道第三张图片的问题是什么,有时候让代码在调试器中运行时图片正在加载.此外,如果我首先加载问题图片,有时不会加载其他两张图片.

这是代码:

public static Drawable getPictureFromURL(Context ctx, String url, final int REQUIRED_SIZE) throws NullPointerException {
    //Decode image size
    BitmapFactory.Options o = new BitmapFactory.Options();
    int scale = 1;
    if (o.outWidth > REQUIRED_SIZE) {
        scale = (int) Math.pow(2, (int) Math.round(Math.log(REQUIRED_SIZE / (double) Math.max(o.outHeight, o.outWidth)) / Math.log(0.5)));
    }
    Log.i(Prototype.TAG, "scale: "+scale); 

    //Decode with inSampleSize
    BitmapFactory.Options o2 = new BitmapFactory.Options();
    o2.inSampleSize = scale;
    Bitmap bmp;
    try {
        bmp = BitmapFactory.decodeStream((InputStream) Tools.fetch(url), null, o2);
        if(bmp!=null)
            return new BitmapDrawable(ctx.getResources(), bmp);
        else
            return null;
    } catch (Exception …
Run Code Online (Sandbox Code Playgroud)

android bitmapfactory

8
推荐指数
1
解决办法
7833
查看次数

标签 统计

android ×2

bitmapfactory ×1

gridview ×1

layout ×1

xml ×1