按id查找按钮并更改其宽度



我需要自动更正按钮的宽度,但我认为,为此,我需要使用下面的代码

class MainActivity : AppCompatActivity() {
val displayMetrics = DisplayMetrics()
val width = displayMetrics.widthPixels
val button_main=findViewById<Button>(R.id.button_main)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button_main.setWidth = width / 3
}
}

不幸的是,若我使用这种方法,我无法启动应用程序,但并没有错误。

在调用setContentView((之前,无法搜索button\umain。将该val的init移动到onCreate((。此外,始终读取崩溃堆栈跟踪

使用以下更新您的代码

class MainActivity : AppCompatActivity() {
val displayMetrics = DisplayMetrics()         
val width = displayMetrics.widthPixels
lateinit var button_main:Button
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button_main = findViewById<Button>(R.id.button_main)
button_main.setWidth = width / 3
}
}

您的问题不清楚,我看到您想更改按钮的宽度,我建议您首先使用缩放动画,您将在res中创建一个anim文件夹并创建一个anim文件并随时更改它的大小(宽度和高度((3秒5秒,你想怎么都行(有一个如何使用android developer.com缩放动画的链接https://developer.android.com/reference/android/view/animation/ScaleAnimation

<scale
android:fromXScale="float"
android:toXScale="float"
android:fromYScale="float"
android:toYScale="float"
android:pivotX="float"
android:pivotY="float"
android:duration="time (miliseconds)"
/>

这是你的动漫文件外观的伪代码

最新更新