android锁屏为啥用layout实现?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android锁屏为啥用layout实现?相关的知识,希望对你有一定的参考价值。

比如pin码和锁屏界面,都是使用layout,直接添加在当前界面上面的,为什么不做成一个Activity,能解释的最好两个都解释下,没什么分,学术性的交流下,希望大家多给意见,相互讨论也可以。

参考技术A layout是布局
完成锁屏界面的各个控件的排列,也就是轮廓,内容。
activity是
把pin码及锁屏界面的相关函数,调用,在这个类中实现,然后setContentView()中调用上面定义的layout。
两个是相辅相成的,都要使用,谢谢~追问

锁屏界面没有Activity呀,源代码里面只定义一个layout,然后最核心的调用只有一个Policy.java,然后后面直接addView(),就直接添加的屏幕上面了。你说的这个应该只是类似于go锁屏这样的,把锁屏做成了一个Activity。

参考技术B 可以作成Activity的。华为的机器的锁屏都已经改成了Activity。追问

那现在想弄明白,当时android写的时候为什么要把他弄成个layout,这个也应该有他的优势萨,除了显示快点?

本回答被提问者采纳

为啥 android 中的 MyTextView 不对齐? [复制]

【中文标题】为啥 android 中的 MyTextView 不对齐? [复制]【英文标题】:why MyTextView in android isn't aligned to right? [duplicate]为什么 android 中的 MyTextView 不对齐? [复制] 【发布时间】:2013-11-23 04:35:10 【问题描述】:
<LinearLayout
        android:id="@+id/tipTitleLayout"
        android:layout_
        android:layout_
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="2dp"
        android:gravity="center_horizontal"
        android:orientation="horizontal" >

        <com.me.view.text.MyTextView
            android:id="@+id/tipTitleText"
            style="@style/popupTitle"
            android:layout_
            android:layout_
            android:layout_alignParentTop="true"
            android:layout_gravity="left"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="38dp"
            android:layout_marginTop="10dp"
            android:gravity="left"
            android:text="Tip" />

    </LinearLayout>

但是当 ltrMode 开启时,我的代码不会改变重力。

我想以编程方式更改它。

怎么来的?

private void setUpforRTL()
    if (AppService.getNativeManager().getLanguageRtl()) 

        TextView addText2 = ((TextView)findViewById(R.id.tipText));
        addText2.setGravity(Gravity.RIGHT);

        TextView title = ((TextView)findViewById(R.id.tipTitleText));
        title.setGravity(Gravity.RIGHT);

        LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)title.getLayoutParams();
        params.gravity = Gravity.RIGHT;

        title.setLayoutParams(params); //causes layout update

    


【问题讨论】:

不,另一个是准确的。我更改了 xml 和问题太多次。我将另一个标记为关闭。 您是否尝试过将父级更改为RelativeLayout。 【参考方案1】:

更新布局参数后,你应该在周围视图上调用requestLayout

【讨论】:

【参考方案2】:

试试这个

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tipTitleLayout"
    android:layout_
    android:layout_
    android:gravity="right|center_vertical"
    android:padding="10dp"
    android:orientation="horizontal" >

    <com.me.view.text.MyTextView
        android:id="@+id/tipTitleText"
        style="@style/popupTitle"
        android:layout_
        android:layout_
        android:text="Tip" />

</LinearLayout>

【讨论】:

你能解释一下吗?我希望它仅在 rtlmode 开启时为 rtl。 它是否有效?【参考方案3】:

将标题声明更改为 LinearLayout,因为您在 xml 中将其定义为 LL。

【讨论】:

在哪里?没看懂 为什么是-1? TextView 标题 = ((TextView)findViewById(R.id.tipTitleText)); title.setGravity(Gravity.RIGHT); 还要注意你的 layout.xml。看起来你对重力/layout_gravity 做了很多 tipTitleText 不是线性布局。你在哪里看到的? 我的错,抱歉,看到的是tipTitleLayout 而不是tipTitleText。尝试减少 layout/layout_gravity 和 margin 设置。尝试使用没有 LinearLayout 的 Textview。这就是我会尝试的。

以上是关于android锁屏为啥用layout实现?的主要内容,如果未能解决你的问题,请参考以下文章

任务二

Android-界面- 进度条

android怎么代码实现锁屏

Android 样式布局

Android如何实现Android程序在手机锁屏后继续运行

android ScrollView 控制行数