【问题标题】:Custom progressbar not fitting properly on screens with different resolution and density自定义进度条不适合不同分辨率和密度的屏幕
【发布时间】:2013-08-15 22:12:33
【问题描述】:

您好,我遇到了一个问题,需要一些专家建议。我有一个自定义的圆形进度条,它的边界在我的启动画面中作为动画灯旋转

看起来像这样:

边界灯不断旋转直到出现闪屏。

现在我的初始屏幕有一个背景图像,在图像的上半部分画了一个圆圈:

看起来像这样:

现在我的圆形进度条应该适合该背景圆形边界。无论我做什么,某些手机屏幕都会失败(圆圈放错了位置)。

我怎样才能融入背景圈,它可以在所有手机和平板电脑上运行。

如果需要进一步说明,请告诉我。

这就是我定义循环进度条的方式:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


     <ImageView
        android:id="@+id/my_splash_screen"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/splashscreen" /> 


   <ProgressBar
       android:id="@+id/progress"
       style="?android:attr/progressBarStyleLarge"
       android:layout_width="170dp"
       android:layout_height="170dp"
       android:layout_centerHorizontal="true"
       android:layout_centerVertical="true"

       android:indeterminateDrawable="@drawable/my_progress_indeterminate"
       android:visibility="visible"/> 

</RelativeLayout>

【问题讨论】:

  • 你好,请添加完整的xml代码。
  • 我现在已经添加了完整的xml。
  • 嘿,如果您将 match_parent 用于 1 个视图,而将特定值 (170 dp) 用于另一个视图,那么它们很可能无法满足您的需求。

标签: android android-layout


【解决方案1】:

我认为您需要更改style 属性并设置您的android:layout_width="match_parent"。问题是您将样式设置为大,默认情况下它的大小是预定义的。在您的宽度和高度属性中,您正在尝试调整它的大小。所以这可能是问题所在。

【讨论】:

  • 我尝试将其设置为匹配父级,但它不适合背景圆边界。此代码来自我的 xhdpi 屏幕布局文件之一。我尝试针对不同的屏幕分辨率进行硬编码,但仍然不适合某些屏幕。
【解决方案2】:

试用 HoloCircular ProgressBar 是 Android 的自定义视图实现。

查看HoloCircular ProgressBar,这可能会对您有所帮助。

您可以使用的其他库如下:

1)Progress Wheel

2)ProgressBar

3)Customize the Spinner

谢谢。

【讨论】:

  • 感谢您的回答,但我不认为进度条是我的问题。问题是设置它的大小,使其适合所有屏幕的背景圆边界。
  • 尝试在布局文件中使用FrameLayout
【解决方案3】:

这个链接在一定程度上帮助我解决了这个问题,因为它现在支持大多数设备。我仍然可以得到问题的一般解决方案。但我可以将其视为答案:

Application Skeleton to support multiple screen

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-09
    • 1970-01-01
    • 1970-01-01
    • 2016-04-29
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    相关资源
    最近更新 更多