Android 我的问题是关于屏幕上尺寸过大的抽绳
我是编程新手,我的绘图设备在某些设备上尺寸过大。我创建了各种像素的图像,然后创建了各种命名dpi级别的可绘制目录。然后根据dpi级别将图像放入可绘制状态。仍有一些手机图像尺寸过大。如何使图像适合所有屏幕大小 谢谢Android 我的问题是关于屏幕上尺寸过大的抽绳,android,android-studio,android-layout,Android,Android Studio,Android Layout,我是编程新手,我的绘图设备在某些设备上尺寸过大。我创建了各种像素的图像,然后创建了各种命名dpi级别的可绘制目录。然后根据dpi级别将图像放入可绘制状态。仍有一些手机图像尺寸过大。如何使图像适合所有屏幕大小 谢谢 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onC
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);
}
}
您可以使用此库使操作不同屏幕大小的drawable变得更容易 这是你的电话号码 您可以只使用一个最大尺寸的可拉伸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" />
或
button.setLayoutParams (new LayoutParams((int) getResources().getDimension(R.dimen._58sdp), (int) getResources().getDimension(R.dimen._52sdp))
我找到了一个方法。如果你有更好的方式,我也希望听到它来学习。我的解决方案:
int h = (int) getResources().getDimension(R.dimen._75sdp);
int w = (int) getResources().getDimension(R.dimen._75sdp);
setLayoutParams(new RelativeLayout.LayoutParams(w, h));
请为您的代码提供一个可验证的示例,也许还有图片来澄清您的问题。我发布了答案,这是管理不同屏幕尺寸的可绘图设备的最简单方法。您是否尝试将scaleType添加到fitCenter(如果您使用的是imageview)?感谢您的回复。我用for循环编程创建了16个按钮(4*4)。然后我将drawable设置为每个,但在某些手机中它不适合屏幕。谢谢您的回复。但我在按钮/图像按钮中添加了可绘制的内容,这些按钮是我通过编程创建的。有没有办法通过编程设置布局宽度和高度?正如您所建议的,我很累,但它会导致编译器错误(错误:找不到符号变量_40sdp)。然后,我创建了dimen.xml文件并从中获取dimen值,它成功地编译了,但给出了运行时错误。我也尝试了setheight(R.dimen.mydimen),但它也给出了运行时错误。谢谢。@ErkinCakir你在你的项目中添加了这个吗???@ErkinCakir我想你没有在你的项目中添加依赖项。Tanveer Munir。多亏了你们,我学会了图书馆和sdp的概念。这对我很有帮助。但不幸的是,我仍然无法设置通过编程创建的按钮的layoutwidth和layoutheight。我尝试了上面的代码,它在开始时关闭应用程序。我也试过“button.setwidth(R.dimen._52sdp)”这个词。它也不起作用。
int h = (int) getResources().getDimension(R.dimen._75sdp);
int w = (int) getResources().getDimension(R.dimen._75sdp);
setLayoutParams(new RelativeLayout.LayoutParams(w, h));