我是编程新手,在某些设备中我的可绘制对象过大。我创建了具有各种像素的图像,然后创建了命名dpi级别的各种drawable 目录。然后根据dpi级别将图像放入可绘制的图像中。仍然在某些手机中图像过大。如何使图像适合所有屏幕尺寸?
谢谢
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LinearLayout linearLayout = findViewById(R.id.Linlayout);
Button btn = new Button(this);
btn.setBackgroundResource(R.drawable.starblack);
linearLayout.addView(btn);
}
}
答案 0 :(得分:1)
我找到了一种方法。如果您有更好的方法,我也想听听。我的解决方案:
int h = (int) getResources().getDimension(R.dimen._75sdp);
int w = (int) getResources().getDimension(R.dimen._75sdp);
setLayoutParams(new RelativeLayout.LayoutParams(w, h));
答案 1 :(得分:0)
您可以使用此库使事情变得更容易,以便您在不同的屏幕尺寸下操作可绘制对象。
这里是Library
您只能使用一个最大尺寸的可绘制xxxhdpi,并将高度和宽度放入SDP,它将对所有屏幕进行管理
例如这样的
<ImageView
android:id="@+id/ivImage"
android:layout_width="@dimen/_9sdp"
android:layout_height="@dimen/_18sdp"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:src="@drawable/icon" />
这是根据不同屏幕管理可绘制对象的最简单方法。
已更新
对于以编程方式在 SDP中设置高度和宽度,如下所示:
button.getLayoutParams().width = (int) getResources().getDimension(R.dimen._52sdp);
button.getLayoutParams().height = (int) getResources().getDimension(R.dimen._58sdp);
OR
button.setLayoutParams (new LayoutParams((int) getResources().getDimension(R.dimen._58sdp), (int) getResources().getDimension(R.dimen._52sdp))