- android13隐藏调节声音进度条下面的设置按钮
黑暗大法师晚上吃午餐肉
android13rom系统开发定制安卓13隐藏声音进度条按钮安卓隐藏声音进度条按钮安卓13隐藏声音设置按钮rk3588隐藏声音进度条按钮安卓隐藏声音进度条调节按钮安卓去除声音进度条调节按钮安卓13去掉声音进度条按钮
总纲android13rom开发总纲说明目录1.前言2.情况分析3.代码修改4.编译运行5.彩蛋1.前言将下面的声音调节底下的三个点的设置按钮,隐藏掉。效果如下2.情况分析查看布局文件通过布局我们可以知道这个按钮就是com.android.keyguard.AlphaOptimizedImageButton查找下SystemUI布局可以发现
- html 添加窗口小部件,如何:为自定义窗口小部件定义主题(样式)项
海上行走的狮子
html添加窗口小部件
波斯汪是的,有一种方法:假设您有一个小部件的属性声明(在中attrs.xml):声明用于样式参考的属性(在中attrs.xml):为小部件声明一组默认属性值(在中styles.xml):声明自定义主题(在中themes.xml):将此属性用作窗口小部件的构造函数中的第三个参数(在中CustomImageButton.java):publicclassCustomImageButtonextends
- ListView的setOnItemClickListener失效解决方案
世道无情
1.概述这篇文章主要记录下自己在项目中的:点击ListView的setOnItemClickListener失效问题。有时候listview的adapter中包含很多控件,像Button、Checkbox、ImageButton等控件,这些子控件会首先获取焦点,导致点击item没有反应,有反应的却是这些子控件,解决方法也比较简单,给adapter的根布局添加属性即可android:descenda
- 点击ListView的setOnItemClickListener失效
世道无情
1.概述在开发过程中,显示listview列表数据中时,如果listview的item的控件含有textview、CheckBox、Button、ImageButton等本身带有click等事件的View,这个时候,点击ListView时,setOnItemClickListener可能会失效:2.原因与解决方案1>:原因如下:此时在item区域中,event(事件)的焦点被内部View抢占了,也
- Android ImageView,使用Kotlin的ImageButton
cunchi4221
androidpythonjavacsseclipse
Inthistutorial,we’lldiscussandimplementImageViewandImageButtoninourandroidapplicationusingKotlincode.在本教程中,我们将使用Kotlin代码在android应用程序中讨论和实现ImageView和ImageButton。什么是AndroidImageView?(WhatisAndroidImageV
- 第二章:Android UI组件介绍
JackHCC
基本UI组件TextView(文本框)1.常用属性:text,textSize(单位sp),textColors,singleLine;EditText(输入框)1.常用属性:hint,inputType,drawableLeft(插入图片),drawablePadding;2.常用方法:getText();Button(按钮)与ImageButton(图像按钮)1.常用属性:text,onCli
- 【Android】ImageButton state_pressed 无效
Yew1168
android
Android–“Pressandhold”buttononAndroidneedstochangestates(customXMLselector)usingonTouchListener主要是为了实现长按语音功能使用了setOnTouchListener事件,覆盖了默认操作;可在motionevent.action_down/action_pointer_down下添加view.setPres
- android电视盒子蓝牙遥控器app,Android TV 智能电视/盒子 APP 开发焦点控制 两种方法实例...
weixin_39756192
(注:下面代码即兴写的,大概就是这个意思–^_^–)&M7Q.r'Y2g#T,nImageButton.setOnFocusChangeListener(){*e:K:G8^*`J%_publicvoidonFocus(booleanFocus){7l#_/t&C6Zif(Focus){4}!d$F$]-P3~6D#C//ImageButton2.1获焦时,ImageButton2.1改变获取焦点
- 安卓程序开发——widget组件开发Widget就是可以放在桌面上的组件,包括像天气、便签、等。AppWidget 框架类练习Widget组件的基础应用、widget的配置、widget与服务结合实现
杪商柒
studio平台android前端android-studioandroidstudio
widget组件开发1.1实验目的掌握Androidwidget组件的应用,练习Widget组件的基础应用、widget的配置、widget与服务结合实现时间倒计时1.2实验步骤1.创建一个Android应用,练习widget的基础用法。2.在布局文件添加TextViewImageButton两个控件3.在res下创建xml文件夹,再创建widget_template.xml元数据4.添加Widg
- Android简单实战项目——弹出菜单实现
一休师傅
文章底部显示代码以下为详细操作过程及代码解释一、activity_main.xml配置添加资源图片界面搭建添加btn_style.xml管理统一ImageButton模式二、MainActivity.java代码创建anim->add.xml百度网盘完整项目链接:https://pan.baidu.com/s/173FnUA437AOSq-h0cQK9Jg提取码:bvwv复制这段内容后打开百度网盘
- Android基础教程(非常详细)从零基础入门到精通,看完这一篇就够了
程序员_大白
互联网网络安全程序员androidjvm
文章目录一、开发环境搭建二、简单控件1.文本显示2.按钮3.常用布局(1)线性布局LinearLayout(3)相对布局RelativeLayout(3)网格布局GridLayout4.图像显示(1)图像的缩放问题:(2)图像按钮ImageButton:三、Activity1.Activity的启动和结束2.Activity的生命周期3.Activity的启动模式(1)静态设置(2)动态设置4.A
- Android高级应用开发详解笔记(约束布局ConstraintLayout保姆级)22.1.28 | CSDN创作打卡
莫白媛
android高级应用开发回顾android开发小练习android高级开发笔记androiduijava
回顾:(1)UI控件(UserInterface)TextView\EditText\Button\ImageView\RadioButton\RadioGroup\ImageButton\DatePicker\TimePicker\ScrollView\ListView\GridView\RecycleView\Spinner(2)Layout(布局)LinearLayout\RelativeL
- 2-3-3 Button/ImageButton
努力学习的安同学
标注:本文为个人整理,仅做自己学习参考使用,请勿转载和转发2018-06-10:初稿。参考博主coder-pig0.引言主要介绍Button和ImageButton两个按钮控件,Button为普通的按钮,ImageButton为图像按钮;其实ImageButton的用法和Button的用法类似,至于图片相关和ImageView相同,所以本届对Button进行讲解,Button是TextView的子
- c#基本控件的命名规则
Dear Wang.
uic#.net
c#基本控件的命名规则如下标注:控件名称简写(简拼)控件名称简写(简拼)Web窗体程序应用LabellblTextBoxtbButtonbtnLinkButtonlbHyperLinkhlRepeatorrptImageButtonibDropDownListddlListBoxlbDataGriddgDataListdlCheckBoxcbCheckBoxListcblRadioButtonrb
- Python学习笔记
熬夜兔子
Thinter图形界面设计7.2常用Tkinter组件的使用Label组件imageButton组件image单行文本框Entry和多行文本框Textimage列表框组件Listboximageimageimage单选按钮Radiobutton和复选框Checkbuttonimage通过单选按钮、复选按钮设置文字样式image菜单组件Menuimageimageimageimageimageima
- 16进制表示透明度
zhan_lijian
JS小程序tools
Button或者ImageButton的背景设为透明或者半透明半透明透明颜色和不透明度(alpha)值以十六进制表示法表示。任何一种颜色的值范围都是0到255(00到ff)。对于alpha,00表示完全透明,ff表示完全不透明。表达式顺序是“rrggbbaa”,其中“aa=alpha”(00到ff);“bb=blue”(00到ff);“gg=green”(00到ff);“rr=red”(00到ff
- Android中一些基础的UI组件
carrie呀carrie
刚起步的Android菜鸟uiandroid
目录一、TextView文本框1、XML代码2、结果展示3、常见的属性二、按钮点击事件注册监听器的两种方式1、普通按钮Button和图片按钮ImageButton1.1、在XML文件中编写Button组件1.2、为Button的点击事件注册一个监听器1.3、结果展示2、单选按钮RadioButton2.1、在XML文件中编写RadioButton组件2.2、Java代码2.3、结果展示3、复选按钮
- android 监测鼠标滑轮,android2.3 监控鼠标滑动事件
福灵善权
android监测鼠标滑轮
鼠标滑过图标时(ImageButton),在button的onTouch事件中,能检测到鼠标的滑动。1.ViewRoot.javadispatchMotion(MotionEventevent,booleansendDone)能检测到鼠标的事件。booleanisDown=false;privatevoiddispatchMotion(MotionEventevent,booleansendDon
- Android 基础知识4-3.3 Button(按钮)与ImageButton(图像按钮)详解
yyxhzdm
Android基础知识androidandroidstudio学习
一、引言今天给大家介绍的Android基本控件中的两个按钮控件,Button普通按钮和ImageButton图像按钮;其实ImageButton和Button的用法基本类似,至于与图片相关的则和后面ImageView相同,所以本节只对Button进行讲解,另外Button是TextView的子类,所以TextView上很多属性也可以应用到Button上!我们实际开发中对于Button的,无非是对按
- android 按钮放中间,Android 肿么让图片显示在button中间
weixin_39768083
android按钮放中间
使用ImageButton就可以实现,代码如下:android:layout_width="wrap_content"android:layout_height="wrap_content"android:scaleType="center"//将控件中的图片属性定义为居中显示android:src="@drawable/xxx"/>下面是scaleType的几种属性的含义:ImageView.S
- Andriod学习笔记(二)
so.far_away
安卓开发进阶笔记前端安卓
页面设计的零碎知识通用属性设置文本大小设置视图宽高设置视图的对齐方式页面布局LinearLayoutRelativeLayoutGridLayoutScollView按钮触控ButtonImageViewImageButton通用属性设置文本大小纯数字的setTextSize方法,内部默认字体单位为sp,sp是Android推荐的字号单位sp专门用来设置字体大小,在系统设置中可以调整字体大小设置视
- android怎么点击换图片,ImageButton单击切换按钮图片
weixin_39687542
android怎么点击换图片
有时单击ImageButton图片按钮时需要获取变换图片的效果,在这里介绍两种方法仅供参考正常显示点击切换方法一:通过给按钮配置XML文件来实现图片按钮的背景切换效果在layout或者是drawable文件下添加一个p_w_picpathbtn_select.xml文件其中的是指是否取得焦点,比如用户选择了一个文本框。再在main.xml文件中设置ImageButton属性,并引用上述文件作为图片
- android 按钮图片切换动画效果,Button按钮点击图片切换效果
高知者
android按钮图片切换动画效果
Button按钮图片切换效果设置。通常在工程中用到图片按钮点击事件,大多都用ImageButton。在这里我们用Button的点击事件,在图片的切换过程中不再通过setBackgroundResource()设置点击效果。而是通过.xml预先设置好切换效果。在这里我们习惯把该.xml文件放到drawable文件夹下。代码如下://xml文件名称这里为test_press.xml1、android:
- Android基本控件和Activity的基本应用
林夕彗心
AndroidAndroid
|||常用界面控件属性名称作用描述TextView显示文本信息Button普通按钮EditText可编辑的文本框组件(输入框)ImageView用于显示图片ImageButton图片按钮CheckBox复选框RadioGroup单选按钮组Spinner下拉列表组件ProgressBar进度条SeekBar拖动条RatingBar评分组件ListView列表Dialog对话框Toast信息提示组件T
- Android之控件与布局,结构知识点,基础完结
魔王哪吒
版权声明:未经博主允许不得转载标题图在Android中我们常常用到很多UI控件,如TextView,EditText,ImageView,Button,ImageButton,ToggleButton,CheckBox,RadioButton等等这些可以自己多用就会了。也会学到一些布局如:LinearLayout线性布局,RelativeLayout相对布局,FrameLayout帧布局,Abso
- Android通过代码动态生成textView、EditText、ImageButton,实现人性化新建旅游行程需求
LongSh1z
一、项目需求在新建旅游行程的过程中因为旅游天数是不确定的,所以我们需要提供可选方案给客户。这里我们可以根据需要点击加号按钮生成对应的天数,根据需要删除对应的天数。演示图如下:20190326003044349.gif二、xml文件如下:三、核心思想:利用linkedList数据结构,每次都把生成的加号按钮、删除按钮和textView控件放进linkedList中,用一个变量index来对应每一个放
- Android 核心笔记
~搬~运~工~
笔记Androidandroid
Android核心笔记各个文件功能view常用属性UI组件层次结构控制UI界面的方法什么是布局管理器常用的布局管理器RelativeLayout:相对布局管理器LinarLayout:线性布局管理器FrameLayout:帧布局TableLayout:表格布局管理器GridLayout:网格布局管理器控件TextView文本框EditText文明本编辑器ButtonImageButton图片按钮I
- android图片背景颜色透明度,android:设置背景图片、背景颜色透明
小寺川
Button或者ImageButton的背景设为透明或者半透明半透明透明颜色和不透明度(alpha)值以十六进制表示法表示。任何一种颜色的值范围都是0到255(00到ff)。对于alpha,00表示完全透明,ff表示完全不透明。表达式顺序是“aabbggrr”,其中“aa=alpha”(00到ff);“bb=blue”(00到ff);“gg=green”(00到ff);“rr=red”(00到ff
- 15 按钮——Button/ImageButton
超低空
在前面两章我们讲了TextView,它是一个纯输出的控件;而EditText在TextView基础之上加入了简单的输入功能;今天要讲的Button是一个和用户互动感很强的控件,从今往后不再是单纯的文本展示,我们可以通过TextView、EditText再加上Button做出非常多有很意思的功能。ImageButton可以理解为是Button的升级版,它在后者的基础之上加上了图片背景,使用方式和Bu
- 无涯教程-Android - ImageButton函数
Hi无涯教程
无涯教程android
ImageButton是一个AbsoluteLayout,可让您指定其子级的确切位置。这显示了带有图像(而不是文本)的按钮,用户可以按下或单击该按钮。AndroidbuttonstylesetImageButton属性以下是与ImageButton控件相关的重要属性。您可以查看Android官方文档以获取属性的完整列表以及可以在运行时更改这些属性的相关方法。继承自android.widget.Im
- 对于规范和实现,你会混淆吗?
yangshangchuan
HotSpot
昨晚和朋友聊天,喝了点咖啡,由于我经常喝茶,很长时间没喝咖啡了,所以失眠了,于是起床读JVM规范,读完后在朋友圈发了一条信息:
JVM Run-Time Data Areas:The Java Virtual Machine defines various run-time data areas that are used during execution of a program. So
- android 网络
百合不是茶
网络
android的网络编程和java的一样没什么好分析的都是一些死的照着写就可以了,所以记录下来 方便查找 , 服务器使用的是TomCat
服务器代码; servlet的使用需要在xml中注册
package servlet;
import java.io.IOException;
import java.util.Arr
- [读书笔记]读法拉第传
comsci
读书笔记
1831年的时候,一年可以赚到1000英镑的人..应该很少的...
要成为一个科学家,没有足够的资金支持,很多实验都无法完成
但是当钱赚够了以后....就不能够一直在商业和市场中徘徊......
- 随机数的产生
沐刃青蛟
随机数
c++中阐述随机数的方法有两种:
一是产生假随机数(不管操作多少次,所产生的数都不会改变)
这类随机数是使用了默认的种子值产生的,所以每次都是一样的。
//默认种子
for (int i = 0; i < 5; i++)
{
cout<<
- PHP检测函数所在的文件名
IT独行者
PHP函数
很简单的功能,用到PHP中的反射机制,具体使用的是ReflectionFunction类,可以获取指定函数所在PHP脚本中的具体位置。 创建引用脚本。
代码:
[php]
view plain
copy
// Filename: functions.php
<?php&nbs
- 银行各系统功能简介
文强chu
金融
银行各系统功能简介 业务系统 核心业务系统 业务功能包括:总账管理、卡系统管理、客户信息管理、额度控管、存款、贷款、资金业务、国际结算、支付结算、对外接口等 清分清算系统 以清算日期为准,将账务类交易、非账务类交易的手续费、代理费、网络服务费等相关费用,按费用类型计算应收、应付金额,经过清算人员确认后上送核心系统完成结算的过程 国际结算系
- Python学习1(pip django 安装以及第一个project)
小桔子
pythondjangopip
最近开始学习python,要安装个pip的工具。听说这个工具很强大,安装了它,在安装第三方工具的话so easy!然后也下载了,按照别人给的教程开始安装,奶奶的怎么也安装不上!
第一步:官方下载pip-1.5.6.tar.gz, https://pypi.python.org/pypi/pip easy!
第二部:解压这个压缩文件,会看到一个setup.p
- php 数组
aichenglong
PHP排序数组循环多维数组
1 php中的创建数组
$product = array('tires','oil','spark');//array()实际上是语言结构而不 是函数
2 如果需要创建一个升序的排列的数字保存在一个数组中,可以使用range()函数来自动创建数组
$numbers=range(1,10)//1 2 3 4 5 6 7 8 9 10
$numbers=range(1,10,
- 安装python2.7
AILIKES
python
安装python2.7
1、下载可从 http://www.python.org/进行下载#wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz
2、复制解压
#mkdir -p /opt/usr/python
#cp /opt/soft/Python-2
- java异常的处理探讨
百合不是茶
JAVA异常
//java异常
/*
1,了解java 中的异常处理机制,有三种操作
a,声明异常
b,抛出异常
c,捕获异常
2,学会使用try-catch-finally来处理异常
3,学会如何声明异常和抛出异常
4,学会创建自己的异常
*/
//2,学会使用try-catch-finally来处理异常
- getElementsByName实例
bijian1013
element
实例1:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/x
- 探索JUnit4扩展:Runner
bijian1013
java单元测试JUnit
参加敏捷培训时,教练提到Junit4的Runner和Rule,于是特上网查一下,发现很多都讲的太理论,或者是举的例子实在是太牵强。多搜索了几下,搜索到两篇我觉得写的非常好的文章。
文章地址:http://www.blogjava.net/jiangshachina/archive/20
- [MongoDB学习笔记二]MongoDB副本集
bit1129
mongodb
1. 副本集的特性
1)一台主服务器(Primary),多台从服务器(Secondary)
2)Primary挂了之后,从服务器自动完成从它们之中选举一台服务器作为主服务器,继续工作,这就解决了单点故障,因此,在这种情况下,MongoDB集群能够继续工作
3)挂了的主服务器恢复到集群中只能以Secondary服务器的角色加入进来
2
- 【Spark八十一】Hive in the spark assembly
bit1129
assembly
Spark SQL supports most commonly used features of HiveQL. However, different HiveQL statements are executed in different manners:
1. DDL statements (e.g. CREATE TABLE, DROP TABLE, etc.)
- Nginx问题定位之监控进程异常退出
ronin47
nginx在运行过程中是否稳定,是否有异常退出过?这里总结几项平时会用到的小技巧。
1. 在error.log中查看是否有signal项,如果有,看看signal是多少。
比如,这是一个异常退出的情况:
$grep signal error.log
2012/12/24 16:39:56 [alert] 13661#0: worker process 13666 exited on s
- No grammar constraints (DTD or XML schema).....两种解决方法
byalias
xml
方法一:常用方法 关闭XML验证
工具栏:windows => preferences => xml => xml files => validation => Indicate when no grammar is specified:选择Ignore即可。
方法二:(个人推荐)
添加 内容如下
<?xml version=
- Netty源码学习-DefaultChannelPipeline
bylijinnan
netty
package com.ljn.channel;
/**
* ChannelPipeline采用的是Intercepting Filter 模式
* 但由于用到两个双向链表和内部类,这个模式看起来不是那么明显,需要仔细查看调用过程才发现
*
* 下面对ChannelPipeline作一个模拟,只模拟关键代码:
*/
public class Pipeline {
- MYSQL数据库常用备份及恢复语句
chicony
mysql
备份MySQL数据库的命令,可以加选不同的参数选项来实现不同格式的要求。
mysqldump -h主机 -u用户名 -p密码 数据库名 > 文件
备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
mysqldump -–add-drop-table -uusername -ppassword databasename > ba
- 小白谈谈云计算--基于Google三大论文
CrazyMizzz
Google云计算GFS
之前在没有接触到云计算之前,只是对云计算有一点点模糊的概念,觉得这是一个很高大上的东西,似乎离我们大一的还很远。后来有机会上了一节云计算的普及课程吧,并且在之前的一周里拜读了谷歌三大论文。不敢说理解,至少囫囵吞枣啃下了一大堆看不明白的理论。现在就简单聊聊我对于云计算的了解。
我先说说GFS
&n
- hadoop 平衡空间设置方法
daizj
hadoopbalancer
在hdfs-site.xml中增加设置balance的带宽,默认只有1M:
<property>
<name>dfs.balance.bandwidthPerSec</name>
<value>10485760</value>
<description&g
- Eclipse程序员要掌握的常用快捷键
dcj3sjt126com
编程
判断一个人的编程水平,就看他用键盘多,还是鼠标多。用键盘一是为了输入代码(当然了,也包括注释),再有就是熟练使用快捷键。 曾有人在豆瓣评
《卓有成效的程序员》:“人有多大懒,才有多大闲”。之前我整理了一个
程序员图书列表,目的也就是通过读书,让程序员变懒。 程序员作为特殊的群体,有的人可以这么懒,懒到事情都交给机器去做,而有的人又可以那么勤奋,每天都孜孜不倦得
- Android学习之路
dcj3sjt126com
Android学习
转自:http://blog.csdn.net/ryantang03/article/details/6901459
以前有J2EE基础,接触JAVA也有两三年的时间了,上手Android并不困难,思维上稍微转变一下就可以很快适应。以前做的都是WEB项目,现今体验移动终端项目,让我越来越觉得移动互联网应用是未来的主宰。
下面说说我学习Android的感受,我学Android首先是看MARS的视
- java 遍历Map的四种方法
eksliang
javaHashMapjava 遍历Map的四种方法
转载请出自出处:
http://eksliang.iteye.com/blog/2059996
package com.ickes;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
/**
* 遍历Map的四种方式
- 【精典】数据库相关相关
gengzg
数据库
package C3P0;
import java.sql.Connection;
import java.sql.SQLException;
import java.beans.PropertyVetoException;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class DBPool{
- 自动补全
huyana_town
自动补全
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml&quo
- jquery在线预览PDF文件,打开PDF文件
天梯梦
jquery
最主要的是使用到了一个jquery的插件jquery.media.js,使用这个插件就很容易实现了。
核心代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.
- ViewPager刷新单个页面的方法
lovelease
androidviewpagertag刷新
使用ViewPager做滑动切换图片的效果时,如果图片是从网络下载的,那么再子线程中下载完图片时我们会使用handler通知UI线程,然后UI线程就可以调用mViewPager.getAdapter().notifyDataSetChanged()进行页面的刷新,但是viewpager不同于listview,你会发现单纯的调用notifyDataSetChanged()并不能刷新页面
- 利用按位取反(~)从复合枚举值里清除枚举值
草料场
enum
以 C# 中的 System.Drawing.FontStyle 为例。
如果需要同时有多种效果,
如:“粗体”和“下划线”的效果,可以用按位或(|)
FontStyle style = FontStyle.Bold | FontStyle.Underline;
如果需要去除 style 里的某一种效果,
- Linux系统新手学习的11点建议
刘星宇
编程工作linux脚本
随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起。这里介绍学习Linux的一些建议。
一、从基础开始:常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题都是很基础的。例如:为什么我使用一个命令的时候,系统告诉我找不到该目录,我要如何限制使用者的权限等问题,这些问题其实都不是很难的,只要了解了 Linu
- hibernate dao层应用之HibernateDaoSupport二次封装
wangzhezichuan
DAOHibernate
/**
* <p>方法描述:sql语句查询 返回List<Class> </p>
* <p>方法备注: Class 只能是自定义类 </p>
* @param calzz
* @param sql
* @return
* <p>创建人:王川</p>
* <p>创建时间:Jul