当前位置: 首页 > 知识库问答 >
问题:

滚动视图太长,因此产生白色边框

鄢选
2023-03-14

我仍在开发我的android应用程序,我仍在努力处理XML和滚动视图。我想显示一个AlertDialog,其中包含:

  • 窗口顶部的JPEG图像
  • 图片下的两个EditText,在相同的Y坐标处。(以及对话框的正负按钮,似乎都可以正常工作)JPEG来自相机,并且非常大,可以在对话框中显示它并隐藏两个EditText。我决定将其嵌入到滚动视图中,以允许用户在图片太大时滚动显示。

问题是,现在我可以显示所有的东西,多亏了滚动条,但我现在有白色的水平条,这是无用的,在一些设备上看起来真的很糟糕。

下面是显示对话框的代码

        LayoutInflater inflater = LayoutInflater.from(this);
    View inflated = inflater.inflate(R.layout.dialog_modify_picture, null);
    ImageView pictureIV = inflated.findViewById(R.id.picturePrint);
    pictureIV.setImageURI(FileProvider.getUriForFile(
            this,
            BuildConfig.APPLICATION_ID + ".provider",
             new File(this.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS) + "/"+ p.getPath()+p.getIdentifier()+".jpeg")));

    TextView pTV = inflated.findViewById(R.id.pictureTV);
    pTV.setText(p.getIdentifier()+ ".jpeg");
    pTV.requestFocus();

    EditText yET = inflated.findViewById(R.id.yPictureET);
    yET.setBackgroundColor(Color.argb(25, 65, 108, 174));
    yET.setText(((Float)p.getY()).toString());

    EditText xET = inflated.findViewById(R.id.xPictureET);
    xET.setBackgroundColor(Color.argb(25, 65, 108, 174));
    xET.setText(((Float)p.getX()).toString());



    AlertDialog.Builder builder = new AlertDialog.Builder(this);

    builder.setNegativeButton("Annuler", (DialogInterface dialog, int which) -> {});
    builder.setPositiveButton("Ok", (DialogInterface dialog, int which) -> {
        try {
            p.setX(Float.parseFloat(xET.getText().toString()));
        } catch (NumberFormatException ignored) {}

        try {
            p.setY(Float.parseFloat(yET.getText().toString()));
        } catch (NumberFormatException ignored) {}

        new PictureDAO(this).update(p);
    });
    builder.setView(inflated);
    builder.show();

以下是XML:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:focusableInTouchMode="true"
android:layout_height="match_parent">

<ScrollView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent">

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <ImageView
            android:id="@+id/picturePrint"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

        <EditText
            android:id="@+id/xPictureET"
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:layout_marginStart="10dp"
            android:inputType="numberDecimal"
            android:padding="10dp"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/pictureTV" />

        <EditText
            android:id="@+id/yPictureET"
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:layout_marginStart="10dp"
            android:layout_marginEnd="10dp"
            android:inputType="numberDecimal"
            android:padding="10dp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toEndOf="@+id/xPictureET"
            app:layout_constraintTop_toBottomOf="@+id/pictureTV" />

        <TextView
            android:id="@+id/pictureTV"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginStart="10dp"
            android:layout_marginTop="5dp"
            android:padding="10dp"
            android:text=""
            app:layout_constraintTop_toBottomOf="@+id/picturePrint" />
    </androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

最后,这里是白色条(图片下方还有一个)GoChecktheWhitebar我想删除白色条,这样图像就可以位于对话框的顶部

谢谢你读我:)

共有1个答案

关玮
2023-03-14

我认为你应该从ImageView中删除app:layout_constraintBottom_toBottomOf="家长",你会没事的

 类似资料:
  • 利用UIScrollView实现视差滚动效果。在demo中,滑动ScrollView,背景图和文字的滚动速度不一样。直接用ScrollView 的协议,对其子视图的坐标进行随机系数比例的位置移动修正,从而实现视差滚动效果。没有用其他的框架,代码简单。 作者说:原创Demo 转载请注明出处。 [Code4App.com]

  • 问题内容: 在Java中,从图像中自动裁剪出白色边框的最简单方法是什么?提前致谢… 问题答案: 如果要使白色部分不可见,最好的方法是使用图像滤镜并使白色像素透明,@ PhiLho 在此处讨论了一些很好的示例,如果要调整图像大小以免边框没有白色颜色,您可以通过四个简单的循环来完成此操作,我为您编写的这个小方法可以解决问题,请注意,它仅裁剪图像的上部,其余部分可以编写,

  • 我在我的布局中尝试放置一个以如下方式滚动内容: 问题是什么都没发生,我无法滚动它。任何建议都会很刺耳?

  • 我有一个水平ScrollView,它有两个元素:CardView和水平RecycerView。所以,当用户水平滚动时,我希望这两个元素滚动。 我想有这样的东西:Goal,橙色的线是CardView,黄色的线是RecycerView。当用户滚动时,两个元素滚动,如下所示:Scrolled Goal。 现在在我的应用程序中,当用户滚动时,只有RecycerView滚动。CardView保持在他的位置。

  • 实现循环ScrollView。有以下特色: 1、循环的scrollview 2、类似于tableview的编程方式 3、可定制化的内容 4、灵活运用可用于移步加载图片 5、结构化,可扩展性高 [Code4App.com]

  • 本文向大家介绍解决Android Studio日志太长或滚动太快问题,包括了解决Android Studio日志太长或滚动太快问题的使用技巧和注意事项,需要的朋友参考一下 前言 安卓开发经常遇到那种日志太长或滚动得太快, 我们直接的解决办法就是进行日志输出长度增大和添加日志过滤器,个人推荐用adb logcat处理更加方便灵活。 解决办法 1. 搜索过滤器 2. 修改日志缓冲大小 找到 " And