androidstudio的textview怎么实现跑马灯

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了androidstudio的textview怎么实现跑马灯相关的知识,希望对你有一定的参考价值。

参考技术A <?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/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.marqueetextviewdeom.MainActivity">

<TextView
android:id = "@+id/textview1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:text="@string/hello_world"/>

</RelativeLayout>

android的textview怎么初始化

我想问一下,textview难道只能用TextView textview = (TextView)findViewById(R.id.xxx);的方式获取吗,为什么我这样写textview根本没有显示出来呢(以下代码写在mainactivity的oncreate函数中):
TextView textView = new TextView(this);
textView.setText("Go Go Go");
textView.setTop(50);
textView.setLeft(50);
textView.setTextSize(24);
textView.setTextColor(Color.BLACK);
textView.setVisibility(View.VISIBLE);
如果我不想把一个view的初始化写进xml里(也就是不想通过findviewbyid方法新建一个view),还有什么办法?
好吧。。事情是这样的。。这个mainactivity已经有了一个view了,我只是希望在这个view的上面覆盖几个textview,这要怎么做到?

你现在是把它创建出来了,但是没有加到activity上,让它显示到哪儿呢。
最简单的操作是调用setContentView(textView), 这样,这一整个Acitivty就只显示这个TextView了,但实际开发中肯定不这么干。

一般是把一个View加到一个Layout上。每一个Layout比如Linerlayout什么的,都是一个GroupView,都有一个addView(View)的方式。
如果你一整个Activity都不想用find。。。那就初始一个Layout 加到 Ac上,加给layout 加view

public void onCreate(Buddle c)
super.onCreate(c)

LinearLyaout layout = new LinearLayout(this);

setContentView(layout);

TextView tv = new TextView(this);

.......你的那堆代码

layout.addView(tv);

追问

问题有了补充

参考技术A 先说明你上面的代码:
你是实例化了 TextView 类,并没有将它加载到页面上去,所以肯定是不会在界面上显示出来的。

其实你的问题就是希望能在后台生成一个 textview,而不是在xml 里面写一个,这个简单,看代码:
LinearLayout linearLayout=new LinearLayout(Show.this); //创建一个布局管理器
TextView tv=new TextView(Show.this); //创建一个 textview
tv.setText("这是一个新的textview "); //设置textview 的 内容
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
              ViewGroup.LayoutParams.WRAP_CONTENT,
             ViewGroup.LayoutParams.WRAP_CONTENT);
linearLayout.addView(tv,lp);
这样就可以创建一个textview 了。追问

问题有了补充

追答

没有太明白你的意思,我可以理解为:你是要改变原有的 view 中的某些textview 吗?
如果是这样,那自然是用 findviewbyid 的方式了。

或者你可以这样,当你做某个操作的时候,你设置你要覆盖的textview 为 setVisibility(xxx.GONE);
然后用我上面说的方式,将你的新的textview 加入到view中去,只需要改变上面的代码中 LinearLayout.LayoutParams lp = xxx.getLayoutParams(); 就可以了

追问

= =,mainactivity有个已经绑定好的keyboardView,setContentView(keyboardView),没有任何layout(我不希望用到layout),我只是在这个kayboardView的draw函数和onTouch函数做了各种手脚。

本回答被提问者和网友采纳
参考技术B

有两种方式初始化textView:

    在xml布局中有textView ; textView=(TextView)findViewById(R.id.xxx);

    代码控制:

    LinearLayout linearLayout=new LinearLayout(Show.this); 
    TextView tv=new TextView(Show.this);  

    LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
                  ViewGroup.LayoutParams.WRAP_CONTENT,
                   ViewGroup.LayoutParams.WRAP_CONTENT);
    linearLayout.addView(tv,layoutParams );


参考技术C 很简单,new一个textview,用addView把这个textview加进去 参考技术D 用setContentView(textView);代替setContentView(R.layout.布局);追问

问题有了补充

以上是关于androidstudio的textview怎么实现跑马灯的主要内容,如果未能解决你的问题,请参考以下文章

android studio怎么让文字居中

片段中的TextView在Android Studio中返回Null

如何在 Android 上的 textview 或 imageview 上设置涟漪效果?

Android Studio - EditText 输入移动 TextView

如何在 Textview-android studio 布局编辑器中添加按钮

更改 android studio 中的 textview 可见性