小编Ada*_*mit的帖子

动态使用RelativeLayout并在px,dp,inch,mm中设置边距

我的应用程序只是一个修改过的ImageViewer,可以选择缩放和拖动.包含修改后的Imageviewer有一个RelativeLayout(我想用作AbsoluteLayout).

然后,可以将新元素添加到布局中以将它们置于图像的某些点中.元素的位置(x,y)以像素为单位,因此我想没有其他方式可以通过编程方式添加它们,而不是使用XML.

然后,每次执行拖动或缩放操作时,都会更新这些元素的位置.

问题是,不知何故,图像的像素与RelativeLayout中的像素不匹配!因此项目"或多或少"位于但不在适当的位置(距离(0,0)越远,误差越大).

我已经尝试过的事情:

  • 尝试不同的转换,因为问题可能与位图和布局之间的密度差异有关:

    Resources r = getResources();
    float x = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 100, r.getDisplayMetrics());
    
    Run Code Online (Sandbox Code Playgroud)
  • 尝试在布局中使用不同的方法来设置边距:

    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
    params.leftMargin = (int) newPosition.x;
    params.topMargin = (int) newPosition.y;
    element.setLayoutParams(params);
    
    Run Code Online (Sandbox Code Playgroud)
  • 我也想在XML中使用RelativeLayout的可用选项,但我真的无法以编程方式找到它,但我可以找到指定维度的方法,我的意思是:

    android:layout_marginLeft ="50px" // or "50mm", or dp, or inches...
    
    Run Code Online (Sandbox Code Playgroud)

layout android landscape margins

9
推荐指数
2
解决办法
3万
查看次数

从SQLite数据库android中检索BLOB

我有一个数据库,里面有一些图像,保存为BLOB.到目前为止,我对数据库没有任何问题,我尝试检索BLOB,就像我对任何其他数据一样,但它不起作用:

Cursor c = mDb.query(" ... ");
c.moveToFirst();

ByteArrayInputStream inputStream = new ByteArrayInputStream(c.getBlob(0));
Bitmap b = BitmapFactory.decodeStream(inputStream);
Run Code Online (Sandbox Code Playgroud)

问题是当程序试图获取"c.getBlob(0)"的信息时,我得到一个异常.它也不适用于"byte [] b = c.getBlob(0)".

可能的原因:

  • 文件太大了?(1.2MB)
  • 我必须做一些其他事情来配置它的BLOB类型?

谢谢!


解决:当我不小心尝试其他文件时,它工作!然后我意识到文件较小(小于1Mb),所以问题似乎是大小.

现在我的问题是,我可以配置它以使BLOB支持大文件吗?

谢谢!

sqlite android blob image

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

android ×2

blob ×1

image ×1

landscape ×1

layout ×1

margins ×1

sqlite ×1