2013-03-11 38 views
2

<item android:left="10dp">的等效java代码是什么?Android什么是`<item android:left =“10dp”>``的等价Java代码?

更具体地讲,我试图让一个位图编程,等效于:

<item android:left="5dp" android:bottom="5dp"> 
    <bitmap 
     android:src="@drawable/screw" 
     android:gravity="bottom|left" /> 
</item> 

编辑

到目前为止我:

BitmapFactory.Options options = new BitmapFactory.Options(); 
options.inJustDecodeBounds = false; 
Bitmap screw = BitmapFactory.decodeResource(res, resId, options);  
BitmapDrawable s = new BitmapDrawable(res, screw); 
s.setGravity(Gravity.LEFT|Gravity.BOTTOM); 
+0

不错的问题.. – Nezam 2013-03-11 05:25:42

+0

很确定您正在寻找LayoutParams进行定位。你能告诉我这个项目是什么类型的视图吗? – 2013-03-11 06:59:04

+0

@LarryMcKenzie它是'' – ilomambo 2013-03-11 07:01:28

回答

1

你可以膨胀从xml的视图很容易,或者如果您以编程方式加载drawable,则应使用文档:http://developer.android.com/reference/android/graphics/drawable/LayerDrawable.html

自从我使用java/android之后,它已经有一段时间了,但是像这样。

Drawable[] layers = [drawable1, drawable2, etc] 
LayerDrawable mDrawable = new LayerDrawable(layers); 
//mDrawable.setLayerInset(int index, int left, int top, int right, int bottom) 
//you will have to manually calculate density pixels. 
mDrawable.setLayerInset(0, 5, 0, 0, 5) 
+0

中的一项内容但是,您正在设置LayerDrawable上的插图,而不是特定的项目。 :::如果我有两个物品,每个都有不同的插入物,该怎么办? ::: BitmapDrawable类没有'setLayerInset()'方法或类似方法,也没有Bitmap类。 – ilomambo 2013-03-11 07:51:37

+1

再看一次。 ['setLayerInset']的第一个参数(http://goo.gl/zqzMm)是项目索引。 – 2013-03-11 09:04:15

+1

@ilomambo正如Jeremy所说,你使用数组中的drawable的索引来指定插入。因此,第一个mDrawable.setLayerInset(0,5,0,0,5),第二个mDrawable.setLayerInset(1,10,0,0,10)等 – 2013-03-11 15:16:54

相关问题