由于某些原因,当我将x坐标设置为screen_width-image_width时,图像显示在屏幕之外。 y坐标也会发生相同的情况。这是我的代码。
public class MainActivity extends AppCompatActivity {
ImageView image;
float height;
float width;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
height = displayMetrics.heightPixels;
width = displayMetrics.widthPixels;
image.setImageResource(R.drawable.pigeon);
image.setX(width - image.getMeasuredWidth());
在这种情况下,作为鸽子的图像不会显示在屏幕上。而且我希望它能显示出来,使鸽子的右边界触摸屏幕的右边界。
编辑:不是我只想定位图像并完成图像处理。我希望能够在应用运行时将图像移动到精确的坐标,例如在单击鼠标时。
答案 0 :(得分:0)
一种将图像正确对齐的方法是使用XML布局。这是最简单的方法。
假设您在ImageView
中有一个RelativeLayout
,则可以如下使用“ layout_alignParentRight”属性:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
tools:context=".MainActivity">
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/image_name"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
/>
</RelativeLayout>
layout_alignParentEnd
属性是layout_alignParentRight
的从右到左语言脚本的替代方法。对于LinearLayout
,可以使用layout_gravity
属性。另外,请确保您的ImageView
是wrap_content
,而不是match_parent
,在这种情况下,图像将扩展为充满整个ImageView
。
如果要以编程方式进行操作,可以按以下方式进行操作:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = findViewById(R.id.imageView);
imageView.setImageResource(R.drawable.pigeon);
RelativeLayout.LayoutParams params = new
RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
imageView.setLayoutParams(params);
}
在这里,我们通过添加align right规则然后为RelativeLayout
设置该layout参数来将Image View
的子视图右对齐。也可以使用LinearLayout
功能为layout_gravity
完成此操作。
我已经对该代码进行了示例图像测试。希望这能解决您的问题。