Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我的问题是关于屏幕上尺寸过大的抽绳_Android_Android Studio_Android Layout - Fatal编程技术网

Android 我的问题是关于屏幕上尺寸过大的抽绳

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

我是编程新手,我的绘图设备在某些设备上尺寸过大。我创建了各种像素的图像,然后创建了各种命名dpi级别的可绘制目录。然后根据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);
    }
}

您可以使用此库使操作不同屏幕大小的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));