我还没有找到解决我的问题的方法,也许你可以在这里帮助我。
我正在使用带有 ImageView 和 TextView 的 RelativeLayout 作为孩子。TextView 包含一个大文本,应该从右向左滚动。但是每次当我为 ImageView 设置新图像时,选框都会从头开始。
我认为通过设置新图像,TextView 会失去焦点,因此选取框再次开始。我怎样才能防止这种情况发生,或者我做错了什么?如果有人能指出我正确的解决方案,那就太好了。
非常感谢!
您可以使用此代码重现我的问题:
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.text.TextUtils.TruncateAt;
import android.view.Display;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class RelativeLayoutActivity extends Activity {
private ImageView mImageView;
private TextView mTextView;
private Handler mHandler = new Handler();
private int mCurrentImage = 0;
private Runnable mCallback = new Runnable() {
@Override
public void run() {
toggleImage();
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); …
Run Code Online (Sandbox Code Playgroud) 我正在学习WidgetMarqueeLabel类:
#include "WidgetMarqueeLabel.h"
#include <QPainter>
#include <QWidget>
WidgetMarqueeLabel::WidgetMarqueeLabel(QWidget *parent)//*parent)
{
px = 0;
py = 10;
speed = 1;
direction = RightToLeft;
connect(&timer3, SIGNAL(timeout()), this, SLOT(refreshLabel()));
timer3.start(10);
}
void WidgetMarqueeLabel::refreshLabel()
{
repaint();
}
WidgetMarqueeLabel::~WidgetMarqueeLabel()
{}
void WidgetMarqueeLabel::show()
{
QLabel::show();
}
void WidgetMarqueeLabel::setAlignment(Qt::Alignment al)
{
m_align = al;
updateCoordinates();
QLabel::setAlignment(al);
}
void WidgetMarqueeLabel::paintEvent(QPaintEvent *evt)
{
QPainter p(this);
if(direction==RightToLeft)
{
px -= speed;
if(px <= (-textLength))
px = width();
}
else
{
px += speed;
if(px >= width())
px = - textLength; …
Run Code Online (Sandbox Code Playgroud) 我有一个关于webkit选框的问题.我有2个可变宽度的元素.(2个元素的宽度相同),两个元素都需要是一个选框.
但是当内容溢出(比元素大)时,我需要一个选取框,如果不是,文本应保持原样(不滚动).
我创建了一个JSFiddle作为示例: http://jsfiddle.net/Vxwed/:
长和短都需要通过CSS3进行选取,而long应该滚动而短的不应该.
<p class="long">Hi my name is John Doe</p>
<p class="short">Yeah!</p>
Run Code Online (Sandbox Code Playgroud)
请记住,元素的内容是可变的(用javascript填充),所以我不能对元素marquee-behavior进行实际的硬编码.
这里的任何CSS专家都能帮到我吗?我一直在研究这个问题,但关于这个问题的信息很少,因为它相对较新.
我现在能够想到的唯一解决方案是使用jQuery来测量元素的宽度,然后计算它们是否需要额外的间距.如果他们需要应用选框,否则不要.但这对我来说似乎不太干净,我宁愿在可能的情况下在HTML/CSS中这样做.
我一直试图在我的应用程序中为HELLO这个词提供字幕效果,但除非文本的长度超过屏幕大小,否则android不允许相同.周围有解决方案吗?
PS:很简单,我似乎还没有得到任何解决方案.
我试图实现类似于marquee的效果- 在水平轴上移动的长(在我的情况下)文本的行.我设法让它工作,但我不能称之为令人满意.
我的Controller
课程如下:
@FXML
private Text newsFeedText;
(...)
@Override
public void initialize(URL url, ResourceBundle resourceBundle) {
TranslateTransition transition = TranslateTransitionBuilder.create()
.duration(new Duration(7500))
.node(newsFeedText)
.interpolator(Interpolator.LINEAR)
.cycleCount(Timeline.INDEFINITE)
.build();
GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
int width = gd.getDisplayMode().getWidth();
transition.setFromX(width);
transition.setToX(-width);
transition.play();
}
Run Code Online (Sandbox Code Playgroud)
newsFeedText
绑定到一些动态更新的文本源,因此它包含不同数量的文本.
我的代码至少有两个缺点:
-width
到+width
; width
是显示器的分辨率宽度如果窗口没有经过全面筛选,有时会看不到文本.如果文本更长并且newsFeedText
宽度将大于显示器的分辨率宽度,则转换将"消失"(仍然在屏幕上).
Duration
不依赖于宽度newsFeedText
.现在,它没有任何意义,但如果过渡fromX
和toX
动态计算,那么它将导致各种速度的选框.
如何摆脱这些弊端?
Marquee不适合我的TextView请检查下面的代码
XML代码为 TextView
<TextView
android:id="@+id/mtextcash"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="30dp"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:gravity="center"
android:marqueeRepeatLimit="marquee_forever"
android:maxLength="5"
android:scrollHorizontally="true"
android:scrollbars="horizontal"
android:singleLine="true"
android:text="Simple application that shows how to use marquee, with a long text"
android:textColor="@color/white"
android:textColorHint="@color/white"
android:textSize="25dp" />
Run Code Online (Sandbox Code Playgroud)
在活动OnCreate中
TextView inputAvailableCash = (TextView) findViewById(R.id.mtextcash);
inputAvailableCash.setSelected(true);
Run Code Online (Sandbox Code Playgroud)
提前致谢
我需要创建两个跨越任意大小的浏览器窗口的选取框(一个带有重复图像,一个带有重复链接);选框项目需要从一开始就显示出来,而不需要几秒钟的时间才能出现在屏幕上,并且每个项目之间的距离需要大约 20px/30px。当用户将鼠标悬停在其上时,选取框需要停止在页面上移动。
我正在为客户创建一个网站,我们决定在一个页面上使用选框来显示徽标,在另一个页面上使用选框来显示客户社交媒体的链接。我不确定如何根据文本或图像的大小来计算动画的必要持续时间,以使其看起来无限。我研究并尝试了 CSS 选项,并四处询问,结果发现通常建议使用 Javascript。我刚刚开始深入研究 Javascript,所以我对从哪里开始这个项目一无所知。这实际上与我需要的非常相似:/sf/answers/3157252591/。这是我想要实现的目标的一个示例:http://maxsiedentopf.com/work-2(只有底部的一个,但左侧没有重叠;只需从左向右移动)。这就是我试图用来达到预期效果的方法:https ://codepen.io/jamesbarnett/pen/kfmKa 。
body {
margin: 0;
font-family: "UniversLTPro-Ex";
font-size: 30px;
}
a {
text-decoration: none;
color: #000;
}
.marquee {
height: 35px;
width: 100%;
overflow: hidden;
position: relative;
background-color: #e9e5fb;
border-top: 1px solid black;
border-bottom: 1px solid black;
padding: 8px 0 4px 0;
}
.marquee div {
display: inline-block;
width: 300%;
height: 40px;
position: absolute;
overflow: hidden;
animation: marquee 12s linear infinite;
}
.marquee span {
float: left; …
Run Code Online (Sandbox Code Playgroud)我想在我的Android应用程序中使用marquee的功能,并使用此代码来实现目标:
<TextView
android:id="@+id/marqueetext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:lines="1"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:text="hello all how are you"
android:textColor="#ff4500"
/>
MarqueeText = (TextView)ShowTheMessages.this.findViewById(R.id.marqueetext);
MarqueeText.setSelected(true);
Run Code Online (Sandbox Code Playgroud)
我不知道为什么它不起作用.我已经经历了很多相关的帖子,但还没找到解决方案.请帮帮我.谢谢.
我正在使用以下HTML代码来水平滚动文本:
<marquee behavior="scroll" direction="left" onmouseover="this.start();" onmouseout="this.stop();">Go on... hover over me!</marquee>
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,一旦您访问该页面,marquee
开始自动滚动.我想要做的是冻结marquee
直到你鼠标悬停.
从html来看,marquee显然是语义网的顶峰。或者更确切地说,它的最低点与闪烁标签并排。无论如何,我们如何在 Prolog 中表示选取框?换句话说,如何定义一个关系marquee/2
以使以下内容成立:
?- marquee("Prolog is marquee ready! ",M).
M = "Prolog is marquee ready! "
; M = "rolog is marquee ready! P"
; M = "olog is marquee ready! Pr"
; M = "log is marquee ready! Pro"
; M = "og is marquee ready! Prol"
; M = "g is marquee ready! Prolo"
; M = " is marquee ready! Prolog"
; M = "is marquee ready! Prolog "
; M = …
Run Code Online (Sandbox Code Playgroud)