如何以编程方式更改宽度和高度,以便形状适合它运行的Android设备? 90dp高度适合我的设备,但我希望它适合其他设备。
这是我的shape.xml代码:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/cellfilled" >
<size android:width="0dp"
android:height="90dp" />
<solid android:color="#00000000" />
<stroke
android:width="1dp"
android:color="#ff000000"/>
<padding
android:bottom="1dp"
android:left="1dp"
android:right="1dp"
android:top="1dp" />
</shape>
答案 0 :(得分:3)
使用如下,
在drawable中创建circle.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<solid android:color="#00000000" />
<stroke
android:width="1dp"
android:color="#ff000000"/>
</shape>
并在linearlayout中添加视图,如下所示,宽度和高度值
View view = new View(this);
view.setBackgroundResource(R.drawable.circle);
LayoutParams params = new LayoutParams(15, 15);
view.setLayoutParams(params);
linearLayout.addView(view);
答案 1 :(得分:1)
抱歉,我在手机上。
你可以尝试
的setBounds()
首先,如果它不起作用,那么您可以使用以下代码:
// Read your drawable from somewhere
Drawable dr = getResources().getDrawable(R.drawable.somedrawable);
Bitmap bitmap = ((BitmapDrawable) dr).getBitmap();
// Scale it to 50 x 50
Drawable d = new BitmapDrawable(getResources(), Bitmap.createScaledBitmap(bitmap, 50, 50, true));
// Set your new, scaled drawable "d"
修改强>
您可以使用以下代码获取px中显示的大小:
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
然后您可以获得某个显示的相对大小,并使用上面的答案以编程方式更改drawable的大小。希望它有所帮助:D