我想设置ImageView
in 的宽度和高度Android
。将ImageView
不存在XML
。它是在这里创建的:
public void setImageView(int i,Integer d, LinearLayout layout ) {
ImageView imageView = new ImageView(this);
imageView.setId(i);
imageView.setPadding(2, 2, 2, 2);
imageView.setImageBitmap(BitmapFactory.decodeResource(getResources(), d));
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
layout.addView(imageView);
}
它被放置在这里LinearLayout
:
<HorizontalScrollView
android:id="@+id/horizontal_scroll_view"
android:layout_width="fill_parent"
android:layout_gravity="center"
android:background="@drawable/white_lines"
android:layout_weight="15"
android:layout_height="0dp" >
<LinearLayout
android:id="@+id/scroll_view_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#999A9FA1"
android:orientation="horizontal" >
</LinearLayout>
</HorizontalScrollView>
所以基本上我所说的setImageView
方法很多次,并填写我HorizontalScrollView
与ImageViews
封闭在LinearLayouts
。我需要将此高度设置为DP而不是像素,以便在所有设备上看起来都一样!!!
您需要将值转换为dps,可以使用以下函数进行操作:
public static int dpToPx(int dp, Context context) {
float density = context.getResources().getDisplayMetrics().density;
return Math.round((float) dp * density);
}
然后,要将ImageView
大小设置为px值,可以执行以下操作:
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)imageView.getLayoutParams();
params.width = dpToPx(45);
params.height = dpToPx(45);
imageView.setLayoutParams(params);
(更改LinearLayout
您ImageView
所在的容器)
编辑:Kotlin版本
转换成Px的函数可以这样写在kotlin中(作为扩展)
fun Int.toPx(context: Context) = this * context.resources.displayMetrics.densityDpi / DisplayMetrics.DENSITY_DEFAULT
然后可以像这样使用它:
view.updateLayoutParams {
width = 200.toPx(context)
height = 100.toPx(context)
}
问题内容: 有没有一种方法可以通过编程而不是作为vm参数来设置最大Java堆大小? 就像是: 问题答案: 不适用于任何Hotspot JVM。只能在命令行上指定JVM堆参数,然后在JVM的生存期内对其进行固定。 使用Hotspot Java实现,“更改”应用程序堆大小的唯一方法是使用不同的命令行参数在新的JVM中重新启动它。 (我隐约记得,其他一些供应商的JVM 确实 允许在运行的JVM中更改某些
问题内容: 如何通过ImageView编程设置的宽度和高度? 问题答案: 设置ImageView的高度可能为时已晚,但是为了其他有相同问题的人: 希望这可以帮助。 重要。如果要在布局已经“布局”之后设置高度,请确保还调用:
我在Android中以编程方式设置APN。当我运行代码时,我得到。如果我在清单中提到这个权限,我得到的错误就像这些权限只有SYSTEM APPS。你能帮我解决这个问题吗?参考链接
问题内容: 我看到了一些示例代码,它们将相同的OnClick事件分配给Android中的所有按钮(即使它们执行的动作完全不同)。如何用Swift做 Android示例: 注意:我不想以编程方式创建按钮。 问题答案: 在iOS上,您没有设置监听器;你添加一个目标(物体)和行动(方法签名,在iOS的说法“选择”)将(这是一个子类): 在这种情况下,第一个参数是目标对象。该操作是一个选择器(方法签名),
问题内容: 如何确保从hibernate.cfg.xml加载所有属性,然后以编程方式添加其他属性?我看到了以下代码片段,但它看起来像是全新的配置,而不是现有配置的补充。 问题答案: 您显示的代码段是您所需要的。只需使用您现有的配置,而不是创建一个新的配置即可。 如果不是您实例化配置(例如,spring),则需要扩展创建它的类。
我试图在我的应用程序中使用模拟位置进行测试。要接收位置更新,我使用最新的Android开发者留档在这里:https://developer.android.com/training/location/receive-location-updates 本教程使用FusedLocationProviderClient和locationClient。requestLocationUpdates(crea