我有这个代码:
public class TestView extends View {
private Path mPath;
private Paint mPaint = new Paint();
public TestView(Context context) {
this(context, null);
}
public TestView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public TestView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
mPath = new Path();
mPath.moveTo(0, 0);
mPath.quadTo(50, -50, 100, 0);
mPath.quadTo(150, 50, 200, 0);
mPath.quadTo(250, -50, 300, 0);
mPath.quadTo(350, 50, 400, 0);
mPath.quadTo(450, -50, 500, 0);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.save();
canvas.translate(0, …Run Code Online (Sandbox Code Playgroud) 我一直在阅读有关MVVM模式的内容.View我应该观察相应的变化ViewModel并采取相应的行动,但如果View在MVVM架构中使用了以下代码,我会感到困惑.
fun onClick(view:View){
showUser(viewModel.getUserDisplayName())
}
Run Code Online (Sandbox Code Playgroud)
这里View没有观察到变化,而是要求获取最新数据ViewModel.这在MVVM中被认为是正确的吗?
android mvvm android-architecture android-architecture-components
我正在研究android中的一个自定义视频播放器.我正在使用VideoView播放视频.最初我的VideoView将具有一定的尺寸(比方说尺寸=(宽度,高度)=(400,300)).我的自定义视频视图的控制按钮之一是"展开/折叠".单击"展开/折叠"按钮后,我想将VideoView大小设置为全屏(表示设备的全屏大小),如果当前VideoView大小为内联,反之亦然(从全屏到内联也是如此).
有人知道完成上述任务的正确方法吗?
我是Android开发的新手并试图制作小游戏.
CountDownTimer.cancel()不适合我.
任何的想法?
谢谢你的回答!
CountDownTimer cdt = new CountDownTimer(120000, 1000) {
public void onTick(long millisUntilFinished) {
maxTime = (int) (millisUntilFinished / 1000);
timer.setText(String.valueOf(maxTime));
}
public void onFinish() {
}
};
if (startTimer == true) {
cdt.start();
} else {
cdt.cancel();
}
Run Code Online (Sandbox Code Playgroud) 以下代码在Asus Intel Zenfone上产生问题(请参阅附图).我测试的其他所有设备都显示正常,这意味着Spinner弹出窗口周围的黑色区域是透明的.
有什么办法摆脱黑色?我Theme.AppCompat.Light.NoActionBar申请了Activity.
<android.support.v7.widget.AppCompatSpinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:popupBackground="@color/light_primary" />
Run Code Online (Sandbox Code Playgroud)

我通过使用对象stringWidth("str")上的方法来计算字符串的宽度FontMetrics.此方法仅给出基线上从起点到终点的宽度.不是字符串的总宽度.
有关如何计算总宽度的任何想法?
大多数文档说我不能通过在字符串中添加每个字符的宽度来依赖结果.这是我的代码,直到现在:
BufferedImage image = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB);
Graphics2D g = image.createGraphics();
FontMetrics fm = g.getFontMetrics(new Font("Arial", Font.PLAIN, 6));
int width = fm.stringWidth("Product name");
Run Code Online (Sandbox Code Playgroud) 给出以下类:
interface Item {
val name: String
}
data class Server(override val name: String, val id: String) : Item
data class Local(override val name: String, val date: Int) : Item
data class Footer(override val name: String) : Item
Run Code Online (Sandbox Code Playgroud)
如果我们创建一个列表:
val items = arrayListOf<Item>()
items.add(Server("server", "b"))
items.add(Local("local", 2))
items.add(Footer("footer"))
items.add(Server("server", "a"))
items.add(Local("local", 1))
items.add(Footer("footer"))
items.add(Server("server", "c"))
items.add(Local("local", 0))
Run Code Online (Sandbox Code Playgroud)
并对其进行排序:
val groupBy = items.groupBy { it.name }
val partialSort = arrayListOf<Item>()
//individually sort each type
partialSort.addAll(groupBy["local"]!!.map { it as Local }.sortedWith(compareBy({ it.date …Run Code Online (Sandbox Code Playgroud) android ×5
java ×2
android-architecture-components ×1
comparable ×1
comparator ×1
kotlin ×1
media-player ×1
mvvm ×1
sorting ×1
string ×1