Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
YGOMobile-Cn-Ko-En
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
fallenstardust
YGOMobile-Cn-Ko-En
Commits
ac8c51c2
Commit
ac8c51c2
authored
Feb 27, 2019
by
fallenstardust
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update & arrange
parent
d98f7243
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
510 additions
and
82 deletions
+510
-82
mobile/assets/changelog.html
mobile/assets/changelog.html
+4
-0
mobile/assets/data/conf/strings.conf
mobile/assets/data/conf/strings.conf
+1
-0
mobile/src/main/AndroidManifest.xml
mobile/src/main/AndroidManifest.xml
+1
-1
mobile/src/main/java/cn/garymb/ygomobile/ui/home/HomeActivity.java
...c/main/java/cn/garymb/ygomobile/ui/home/HomeActivity.java
+10
-4
mobile/src/main/java/cn/garymb/ygomobile/ui/widget/Shimmer.java
.../src/main/java/cn/garymb/ygomobile/ui/widget/Shimmer.java
+164
-0
mobile/src/main/java/cn/garymb/ygomobile/ui/widget/ShimmerTextView.java
...n/java/cn/garymb/ygomobile/ui/widget/ShimmerTextView.java
+112
-0
mobile/src/main/java/cn/garymb/ygomobile/ui/widget/ShimmerViewBase.java
...n/java/cn/garymb/ygomobile/ui/widget/ShimmerViewBase.java
+15
-0
mobile/src/main/java/cn/garymb/ygomobile/ui/widget/ShimmerViewHelper.java
...java/cn/garymb/ygomobile/ui/widget/ShimmerViewHelper.java
+179
-0
mobile/src/main/java/cn/garymb/ygomobile/ui/widget/ShiningTextView.java
...n/java/cn/garymb/ygomobile/ui/widget/ShiningTextView.java
+0
-56
mobile/src/main/res/layout/activity_home.xml
mobile/src/main/res/layout/activity_home.xml
+18
-21
mobile/src/main/res/values-ko/strings.xml
mobile/src/main/res/values-ko/strings.xml
+1
-0
mobile/src/main/res/values-zh/strings.xml
mobile/src/main/res/values-zh/strings.xml
+1
-0
mobile/src/main/res/values/attrs.xml
mobile/src/main/res/values/attrs.xml
+3
-0
mobile/src/main/res/values/strings.xml
mobile/src/main/res/values/strings.xml
+1
-0
No files found.
mobile/assets/changelog.html
View file @
ac8c51c2
...
@@ -25,6 +25,10 @@
...
@@ -25,6 +25,10 @@
2.新卡20AC+DBIC+VJ;
2.新卡20AC+DBIC+VJ;
修复:
修复:
1.后台mobile开启中点图标会重启的问题;
1.后台mobile开启中点图标会重启的问题;
优化:
1.默认打开决斗界面随手机朝向旋转;
2.ygo后台开启中的场合,
可从主界面右下提示点击返回ygo;
</pre>
</pre>
</body>
</body>
</html>
</html>
\ No newline at end of file
mobile/assets/data/conf/strings.conf
View file @
ac8c51c2
...
@@ -937,3 +937,4 @@
...
@@ -937,3 +937,4 @@
!
setname
0
x123
蔷薇龙 ローズ・ドラゴン
!
setname
0
x123
蔷薇龙 ローズ・ドラゴン
!
setname
0
x124
机械天使 機械天使
!
setname
0
x124
机械天使 機械天使
!
setname
0
x125
笑容 スマイル
!
setname
0
x125
笑容 スマイル
!
setname
0
x126
时间怪盗
Time
Thief
mobile/src/main/AndroidManifest.xml
View file @
ac8c51c2
...
@@ -37,7 +37,7 @@
...
@@ -37,7 +37,7 @@
tools:replace=
"android:allowBackup,android:supportsRtl"
>
tools:replace=
"android:allowBackup,android:supportsRtl"
>
<activity
<activity
android:name=
"cn.garymb.ygomobile.ui.activities.LogoActivity"
android:name=
"cn.garymb.ygomobile.ui.activities.LogoActivity"
android:excludeFromRecents=
"
tru
e"
android:excludeFromRecents=
"
fals
e"
android:taskAffinity=
"cn.garymb.logo"
android:taskAffinity=
"cn.garymb.logo"
android:theme=
"@style/TranslucentTheme"
>
android:theme=
"@style/TranslucentTheme"
>
<intent-filter>
<intent-filter>
...
...
mobile/src/main/java/cn/garymb/ygomobile/ui/home/HomeActivity.java
View file @
ac8c51c2
...
@@ -64,7 +64,8 @@ import cn.garymb.ygomobile.ui.plus.DefaultOnBoomListener;
...
@@ -64,7 +64,8 @@ import cn.garymb.ygomobile.ui.plus.DefaultOnBoomListener;
import
cn.garymb.ygomobile.ui.plus.DialogPlus
;
import
cn.garymb.ygomobile.ui.plus.DialogPlus
;
import
cn.garymb.ygomobile.ui.plus.ServiceDuelAssistant
;
import
cn.garymb.ygomobile.ui.plus.ServiceDuelAssistant
;
import
cn.garymb.ygomobile.ui.preference.SettingsActivity
;
import
cn.garymb.ygomobile.ui.preference.SettingsActivity
;
import
cn.garymb.ygomobile.ui.widget.ShiningTextView
;
import
cn.garymb.ygomobile.ui.widget.Shimmer
;
import
cn.garymb.ygomobile.ui.widget.ShimmerTextView
;
import
cn.garymb.ygomobile.utils.AlipayPayUtils
;
import
cn.garymb.ygomobile.utils.AlipayPayUtils
;
import
cn.garymb.ygomobile.utils.FileLogUtil
;
import
cn.garymb.ygomobile.utils.FileLogUtil
;
import
cn.garymb.ygomobile.utils.PermissionUtil
;
import
cn.garymb.ygomobile.utils.PermissionUtil
;
...
@@ -73,7 +74,7 @@ import cn.garymb.ygomobile.utils.ScreenUtil;
...
@@ -73,7 +74,7 @@ import cn.garymb.ygomobile.utils.ScreenUtil;
public
abstract
class
HomeActivity
extends
BaseActivity
implements
NavigationView
.
OnNavigationItemSelectedListener
{
public
abstract
class
HomeActivity
extends
BaseActivity
implements
NavigationView
.
OnNavigationItemSelectedListener
{
protected
SwipeMenuRecyclerView
mServerList
;
protected
SwipeMenuRecyclerView
mServerList
;
long
exitLasttime
=
0
;
long
exitLasttime
=
0
;
Shi
ning
TextView
tv
;
Shi
mmer
TextView
tv
;
Shimmer
shimmer
;
Shimmer
shimmer
;
private
ServerListAdapter
mServerListAdapter
;
private
ServerListAdapter
mServerListAdapter
;
private
ServerListManager
mServerListManager
;
private
ServerListManager
mServerListManager
;
...
@@ -196,7 +197,8 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie
...
@@ -196,7 +197,8 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie
EventBus
.
getDefault
().
register
(
this
);
EventBus
.
getDefault
().
register
(
this
);
initBoomMenuButton
(
$
(
R
.
id
.
bmb
));
initBoomMenuButton
(
$
(
R
.
id
.
bmb
));
AnimationShake
();
AnimationShake
();
tv
=
(
ShiningTextView
)
findViewById
(
R
.
id
.
shimmer_tv
);
tv
=
(
ShimmerTextView
)
findViewById
(
R
.
id
.
shimmer_tv
);
toggleAnimation
(
tv
);
QbSdk
.
PreInitCallback
cb
=
new
QbSdk
.
PreInitCallback
()
{
QbSdk
.
PreInitCallback
cb
=
new
QbSdk
.
PreInitCallback
()
{
@Override
@Override
...
@@ -205,7 +207,7 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie
...
@@ -205,7 +207,7 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie
if
(
arg0
)
{
if
(
arg0
)
{
// Toast.makeText(getActivity(), "加载成功", Toast.LENGTH_LONG).show();
// Toast.makeText(getActivity(), "加载成功", Toast.LENGTH_LONG).show();
}
else
{
}
else
{
Toast
.
makeText
(
getActivity
(),
"部分资源因机型原因加载错误,不影响使用"
,
Toast
.
LENGTH_LONG
).
show
();
//
Toast.makeText(getActivity(), "部分资源因机型原因加载错误,不影响使用", Toast.LENGTH_LONG).show();
}
}
}
}
...
@@ -579,6 +581,10 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie
...
@@ -579,6 +581,10 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie
});
});
}
}
public
void
BacktoDuel
(){
openGame
();
}
public
boolean
joinQQGroup
(
String
key
)
{
public
boolean
joinQQGroup
(
String
key
)
{
Intent
intent
=
new
Intent
();
Intent
intent
=
new
Intent
();
intent
.
setData
(
Uri
.
parse
(
"mqqopensdkapi://bizAgent/qm/qr?url=http%3A%2F%2Fqm.qq.com%2Fcgi-bin%2Fqm%2Fqr%3Ffrom%3Dapp%26p%3Dandroid%26k%3D"
+
key
));
intent
.
setData
(
Uri
.
parse
(
"mqqopensdkapi://bizAgent/qm/qr?url=http%3A%2F%2Fqm.qq.com%2Fcgi-bin%2Fqm%2Fqr%3Ffrom%3Dapp%26p%3Dandroid%26k%3D"
+
key
));
...
...
mobile/src/main/java/cn/garymb/ygomobile/ui/widget/Shimmer.java
0 → 100644
View file @
ac8c51c2
package
cn.garymb.ygomobile.ui.widget
;
import
android.animation.Animator
;
import
android.animation.ObjectAnimator
;
import
android.animation.ValueAnimator
;
import
android.os.Build
;
import
android.view.View
;
public
class
Shimmer
{
public
static
final
int
ANIMATION_DIRECTION_LTR
=
0
;
public
static
final
int
ANIMATION_DIRECTION_RTL
=
1
;
private
static
final
int
DEFAULT_REPEAT_COUNT
=
ValueAnimator
.
INFINITE
;
private
static
final
long
DEFAULT_DURATION
=
1000
;
private
static
final
long
DEFAULT_START_DELAY
=
0
;
private
static
final
int
DEFAULT_DIRECTION
=
ANIMATION_DIRECTION_LTR
;
private
int
repeatCount
;
private
long
duration
;
private
long
startDelay
;
private
int
direction
;
private
Animator
.
AnimatorListener
animatorListener
;
private
ObjectAnimator
animator
;
public
Shimmer
()
{
repeatCount
=
DEFAULT_REPEAT_COUNT
;
duration
=
DEFAULT_DURATION
;
startDelay
=
DEFAULT_START_DELAY
;
direction
=
DEFAULT_DIRECTION
;
}
public
int
getRepeatCount
()
{
return
repeatCount
;
}
public
Shimmer
setRepeatCount
(
int
repeatCount
)
{
this
.
repeatCount
=
repeatCount
;
return
this
;
}
public
long
getDuration
()
{
return
duration
;
}
public
Shimmer
setDuration
(
long
duration
)
{
this
.
duration
=
duration
;
return
this
;
}
public
long
getStartDelay
()
{
return
startDelay
;
}
public
Shimmer
setStartDelay
(
long
startDelay
)
{
this
.
startDelay
=
startDelay
;
return
this
;
}
public
int
getDirection
()
{
return
direction
;
}
public
Shimmer
setDirection
(
int
direction
)
{
if
(
direction
!=
ANIMATION_DIRECTION_LTR
&&
direction
!=
ANIMATION_DIRECTION_RTL
)
{
throw
new
IllegalArgumentException
(
"The animation direction must be either ANIMATION_DIRECTION_LTR or ANIMATION_DIRECTION_RTL"
);
}
this
.
direction
=
direction
;
return
this
;
}
public
Animator
.
AnimatorListener
getAnimatorListener
()
{
return
animatorListener
;
}
public
Shimmer
setAnimatorListener
(
Animator
.
AnimatorListener
animatorListener
)
{
this
.
animatorListener
=
animatorListener
;
return
this
;
}
public
<
V
extends
View
&
ShimmerViewBase
>
void
start
(
final
V
shimmerView
)
{
if
(
isAnimating
())
{
return
;
}
final
Runnable
animate
=
new
Runnable
()
{
@Override
public
void
run
()
{
shimmerView
.
setShimmering
(
true
);
float
fromX
=
0
;
float
toX
=
shimmerView
.
getWidth
();
if
(
direction
==
ANIMATION_DIRECTION_RTL
)
{
fromX
=
shimmerView
.
getWidth
();
toX
=
0
;
}
animator
=
ObjectAnimator
.
ofFloat
(
shimmerView
,
"gradientX"
,
fromX
,
toX
);
animator
.
setRepeatCount
(
repeatCount
);
animator
.
setDuration
(
duration
);
animator
.
setStartDelay
(
startDelay
);
animator
.
addListener
(
new
Animator
.
AnimatorListener
()
{
@Override
public
void
onAnimationStart
(
Animator
animation
)
{
}
@Override
public
void
onAnimationEnd
(
Animator
animation
)
{
shimmerView
.
setShimmering
(
false
);
if
(
Build
.
VERSION
.
SDK_INT
<
Build
.
VERSION_CODES
.
JELLY_BEAN
)
{
shimmerView
.
postInvalidate
();
}
else
{
shimmerView
.
postInvalidateOnAnimation
();
}
animator
=
null
;
}
@Override
public
void
onAnimationCancel
(
Animator
animation
)
{
}
@Override
public
void
onAnimationRepeat
(
Animator
animation
)
{
}
});
if
(
animatorListener
!=
null
)
{
animator
.
addListener
(
animatorListener
);
}
animator
.
start
();
}
};
if
(!
shimmerView
.
isSetUp
())
{
shimmerView
.
setAnimationSetupCallback
(
new
ShimmerViewHelper
.
AnimationSetupCallback
()
{
@Override
public
void
onSetupAnimation
(
final
View
target
)
{
animate
.
run
();
}
});
}
else
{
animate
.
run
();
}
}
public
void
cancel
()
{
if
(
animator
!=
null
)
{
animator
.
cancel
();
}
}
public
boolean
isAnimating
()
{
return
animator
!=
null
&&
animator
.
isRunning
();
}
}
mobile/src/main/java/cn/garymb/ygomobile/ui/widget/ShimmerTextView.java
0 → 100644
View file @
ac8c51c2
package
cn.garymb.ygomobile.ui.widget
;
import
android.content.Context
;
import
android.content.res.ColorStateList
;
import
android.graphics.Canvas
;
import
android.support.v7.widget.AppCompatTextView
;
import
android.util.AttributeSet
;
public
class
ShimmerTextView
extends
AppCompatTextView
implements
ShimmerViewBase
{
private
ShimmerViewHelper
shimmerViewHelper
;
public
ShimmerTextView
(
Context
context
)
{
super
(
context
);
shimmerViewHelper
=
new
ShimmerViewHelper
(
this
,
getPaint
(),
null
);
shimmerViewHelper
.
setPrimaryColor
(
getCurrentTextColor
());
}
public
ShimmerTextView
(
Context
context
,
AttributeSet
attrs
)
{
super
(
context
,
attrs
);
shimmerViewHelper
=
new
ShimmerViewHelper
(
this
,
getPaint
(),
attrs
);
shimmerViewHelper
.
setPrimaryColor
(
getCurrentTextColor
());
}
public
ShimmerTextView
(
Context
context
,
AttributeSet
attrs
,
int
defStyle
)
{
super
(
context
,
attrs
,
defStyle
);
shimmerViewHelper
=
new
ShimmerViewHelper
(
this
,
getPaint
(),
attrs
);
shimmerViewHelper
.
setPrimaryColor
(
getCurrentTextColor
());
}
@Override
public
float
getGradientX
()
{
return
shimmerViewHelper
.
getGradientX
();
}
@Override
public
void
setGradientX
(
float
gradientX
)
{
shimmerViewHelper
.
setGradientX
(
gradientX
);
}
@Override
public
boolean
isShimmering
()
{
return
shimmerViewHelper
.
isShimmering
();
}
@Override
public
void
setShimmering
(
boolean
isShimmering
)
{
shimmerViewHelper
.
setShimmering
(
isShimmering
);
}
@Override
public
boolean
isSetUp
()
{
return
shimmerViewHelper
.
isSetUp
();
}
@Override
public
void
setAnimationSetupCallback
(
ShimmerViewHelper
.
AnimationSetupCallback
callback
)
{
shimmerViewHelper
.
setAnimationSetupCallback
(
callback
);
}
@Override
public
int
getPrimaryColor
()
{
return
shimmerViewHelper
.
getPrimaryColor
();
}
@Override
public
void
setPrimaryColor
(
int
primaryColor
)
{
shimmerViewHelper
.
setPrimaryColor
(
primaryColor
);
}
@Override
public
int
getReflectionColor
()
{
return
shimmerViewHelper
.
getReflectionColor
();
}
@Override
public
void
setReflectionColor
(
int
reflectionColor
)
{
shimmerViewHelper
.
setReflectionColor
(
reflectionColor
);
}
@Override
public
void
setTextColor
(
int
color
)
{
super
.
setTextColor
(
color
);
if
(
shimmerViewHelper
!=
null
)
{
shimmerViewHelper
.
setPrimaryColor
(
getCurrentTextColor
());
}
}
@Override
public
void
setTextColor
(
ColorStateList
colors
)
{
super
.
setTextColor
(
colors
);
if
(
shimmerViewHelper
!=
null
)
{
shimmerViewHelper
.
setPrimaryColor
(
getCurrentTextColor
());
}
}
@Override
protected
void
onSizeChanged
(
int
w
,
int
h
,
int
oldw
,
int
oldh
)
{
super
.
onSizeChanged
(
w
,
h
,
oldw
,
oldh
);
if
(
shimmerViewHelper
!=
null
)
{
shimmerViewHelper
.
onSizeChanged
();
}
}
@Override
public
void
onDraw
(
Canvas
canvas
)
{
if
(
shimmerViewHelper
!=
null
)
{
shimmerViewHelper
.
onDraw
();
}
super
.
onDraw
(
canvas
);
}
}
mobile/src/main/java/cn/garymb/ygomobile/ui/widget/ShimmerViewBase.java
0 → 100644
View file @
ac8c51c2
package
cn.garymb.ygomobile.ui.widget
;
public
interface
ShimmerViewBase
{
public
float
getGradientX
();
public
void
setGradientX
(
float
gradientX
);
public
boolean
isShimmering
();
public
void
setShimmering
(
boolean
isShimmering
);
public
boolean
isSetUp
();
public
void
setAnimationSetupCallback
(
ShimmerViewHelper
.
AnimationSetupCallback
callback
);
public
int
getPrimaryColor
();
public
void
setPrimaryColor
(
int
primaryColor
);
public
int
getReflectionColor
();
public
void
setReflectionColor
(
int
reflectionColor
);
}
mobile/src/main/java/cn/garymb/ygomobile/ui/widget/ShimmerViewHelper.java
0 → 100644
View file @
ac8c51c2
package
cn.garymb.ygomobile.ui.widget
;
import
android.content.res.TypedArray
;
import
android.graphics.LinearGradient
;
import
android.graphics.Matrix
;
import
android.graphics.Paint
;
import
android.graphics.Shader
;
import
android.util.AttributeSet
;
import
android.view.View
;
import
cn.garymb.ygomobile.lite.R
;
public
class
ShimmerViewHelper
{
public
interface
AnimationSetupCallback
{
void
onSetupAnimation
(
View
target
);
}
private
static
final
int
DEFAULT_REFLECTION_COLOR
=
0xFFFFFFFF
;
private
View
view
;
private
Paint
paint
;
// center position of the gradient
private
float
gradientX
;
// shader applied on the text view
// only null until the first global layout
private
LinearGradient
linearGradient
;
// shader's local matrix
// never null
private
Matrix
linearGradientMatrix
;
private
int
primaryColor
;
// shimmer reflection color
private
int
reflectionColor
;
// true when animating
private
boolean
isShimmering
;
// true after first global layout
private
boolean
isSetUp
;
// callback called after first global layout
private
AnimationSetupCallback
callback
;
public
ShimmerViewHelper
(
View
view
,
Paint
paint
,
AttributeSet
attributeSet
)
{
this
.
view
=
view
;
this
.
paint
=
paint
;
init
(
attributeSet
);
}
public
float
getGradientX
()
{
return
gradientX
;
}
public
void
setGradientX
(
float
gradientX
)
{
this
.
gradientX
=
gradientX
;
view
.
invalidate
();
}
public
boolean
isShimmering
()
{
return
isShimmering
;
}
public
void
setShimmering
(
boolean
isShimmering
)
{
this
.
isShimmering
=
isShimmering
;
}
public
boolean
isSetUp
()
{
return
isSetUp
;
}
public
void
setAnimationSetupCallback
(
AnimationSetupCallback
callback
)
{
this
.
callback
=
callback
;
}
public
int
getPrimaryColor
()
{
return
primaryColor
;
}
public
void
setPrimaryColor
(
int
primaryColor
)
{
this
.
primaryColor
=
primaryColor
;
if
(
isSetUp
)
{
resetLinearGradient
();
}
}
public
int
getReflectionColor
()
{
return
reflectionColor
;
}
public
void
setReflectionColor
(
int
reflectionColor
)
{
this
.
reflectionColor
=
reflectionColor
;
if
(
isSetUp
)
{
resetLinearGradient
();
}
}
private
void
init
(
AttributeSet
attributeSet
)
{
reflectionColor
=
DEFAULT_REFLECTION_COLOR
;
if
(
attributeSet
!=
null
)
{
TypedArray
a
=
view
.
getContext
().
obtainStyledAttributes
(
attributeSet
,
R
.
styleable
.
ShimmerView
,
0
,
0
);
if
(
a
!=
null
)
{
try
{
reflectionColor
=
a
.
getColor
(
R
.
styleable
.
ShimmerView_reflectionColor
,
DEFAULT_REFLECTION_COLOR
);
}
catch
(
Exception
e
)
{
android
.
util
.
Log
.
e
(
"ShimmerTextView"
,
"Error while creating the view:"
,
e
);
}
finally
{
a
.
recycle
();
}
}
}
linearGradientMatrix
=
new
Matrix
();
}
private
void
resetLinearGradient
()
{
linearGradient
=
new
LinearGradient
(-
view
.
getWidth
(),
0
,
0
,
0
,
new
int
[]{
primaryColor
,
reflectionColor
,
primaryColor
,
},
new
float
[]{
0
,
0.5f
,
1
},
Shader
.
TileMode
.
CLAMP
);
paint
.
setShader
(
linearGradient
);
}
protected
void
onSizeChanged
()
{
resetLinearGradient
();
if
(!
isSetUp
)
{
isSetUp
=
true
;
if
(
callback
!=
null
)
{
callback
.
onSetupAnimation
(
view
);
}
}
}
/**
* content of the wrapping view's onDraw(Canvas)
* MUST BE CALLED BEFORE SUPER STATEMENT
*/
public
void
onDraw
()
{
// only draw the shader gradient over the text while animating
if
(
isShimmering
)
{
// first onDraw() when shimmering
if
(
paint
.
getShader
()
==
null
)
{
paint
.
setShader
(
linearGradient
);
}
// translate the shader local matrix
linearGradientMatrix
.
setTranslate
(
2
*
gradientX
,
0
);
// this is required in order to invalidate the shader's position
linearGradient
.
setLocalMatrix
(
linearGradientMatrix
);
}
else
{
// we're not animating, remove the shader from the paint
paint
.
setShader
(
null
);
}
}
}
mobile/src/main/java/cn/garymb/ygomobile/ui/widget/ShiningTextView.java
deleted
100644 → 0
View file @
d98f7243
package
cn.garymb.ygomobile.ui.widget
;
import
android.content.Context
;
import
android.graphics.Canvas
;
import
android.graphics.LinearGradient
;
import
android.graphics.Matrix
;
import
android.graphics.Paint
;
import
android.graphics.Shader
;
import
android.support.v7.widget.AppCompatTextView
;
import
android.util.AttributeSet
;
public
class
ShiningTextView
extends
AppCompatTextView
{
private
LinearGradient
mLinearGradient
;
private
Matrix
mGradientMatrix
;
private
Paint
mPaint
;
private
int
mViewWidth
=
0
;
private
int
mTranslate
=
0
;
private
boolean
mAnimating
=
true
;
public
ShiningTextView
(
Context
context
,
AttributeSet
attrs
)
{
super
(
context
,
attrs
);
}
@Override
protected
void
onSizeChanged
(
int
w
,
int
h
,
int
oldw
,
int
oldh
)
{
super
.
onSizeChanged
(
w
,
h
,
oldw
,
oldh
);
if
(
mViewWidth
==
0
)
{
mViewWidth
=
getMeasuredWidth
();
if
(
mViewWidth
>
0
)
{
mPaint
=
getPaint
();
mLinearGradient
=
new
LinearGradient
(-
mViewWidth
,
0
,
0
,
0
,
new
int
[]{
0x33ffffff
,
0xffffffff
,
0x33ffffff
},
new
float
[]{
0
,
0.5f
,
1
},
Shader
.
TileMode
.
CLAMP
);
mPaint
.
setShader
(
mLinearGradient
);
mGradientMatrix
=
new
Matrix
();
}
}
}
@Override
protected
void
onDraw
(
Canvas
canvas
)
{
super
.
onDraw
(
canvas
);
if
(
mAnimating
&&
mGradientMatrix
!=
null
)
{
mTranslate
+=
mViewWidth
/
10
;
if
(
mTranslate
>
2
*
mViewWidth
)
{
mTranslate
=
-
mViewWidth
;
}
mGradientMatrix
.
setTranslate
(
mTranslate
,
0
);
mLinearGradient
.
setLocalMatrix
(
mGradientMatrix
);
postInvalidateDelayed
(
50
);
}
}
}
mobile/src/main/res/layout/activity_home.xml
View file @
ac8c51c2
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
<FrameLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"@drawable/bg3"
android:background=
"@drawable/bg3"
...
@@ -82,28 +83,24 @@
...
@@ -82,28 +83,24 @@
android:text=
"@string/mycard"
android:text=
"@string/mycard"
android:textSize=
"10sp"
/>
android:textSize=
"10sp"
/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_gravity=
"bottom"
android:orientation=
"vertical"
>
<Button
android:onClick=
"toggleAnimation"
android:layout_width=
"60dp"
android:layout_height=
"60dp"
android:layout_gravity=
"center"
android:background=
"@drawable/start"
/>
<cn.garymb.ygomobile.ui.widget.ShiningTextView
<LinearLayout
android:id=
"@+id/shimmer_tv"
android:layout_width=
"match_parent"
android:layout_width=
"150dp"
android:layout_height=
"match_parent"
android:layout_height=
"30dp"
android:layout_gravity=
"bottom"
android:text=
"点击返回决斗中"
android:gravity=
"right"
android:textColor=
"#999"
android:orientation=
"horizontal"
>
android:textSize=
"20sp"
android:layout_gravity=
"center"
/>
</LinearLayout>
<cn.garymb.ygomobile.ui.widget.ShimmerTextView
android:id=
"@+id/shimmer_tv"
android:layout_width=
"150dp"
android:layout_height=
"60dp"
android:layout_gravity=
"center"
android:gravity=
"center"
android:text=
"@string/return_to_duel"
android:textColor=
"@color/item_title"
android:background=
"@drawable/blue"
android:textSize=
"20sp"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</FrameLayout>
</FrameLayout>
\ No newline at end of file
mobile/src/main/res/values-ko/strings.xml
View file @
ac8c51c2
...
@@ -243,4 +243,5 @@
...
@@ -243,4 +243,5 @@
<string
name=
"to_open"
>
열기
</string>
<string
name=
"to_open"
>
열기
</string>
<string
name=
"crashed"
>
YGOMobile 추락 한!
</string>
<string
name=
"crashed"
>
YGOMobile 추락 한!
</string>
<string
name=
"invalid_shortcut"
>
잘못된 바로 가기
</string>
<string
name=
"invalid_shortcut"
>
잘못된 바로 가기
</string>
<string
name=
"return_to_duel"
>
게임에 복귀☞
</string>
</resources>
</resources>
mobile/src/main/res/values-zh/strings.xml
View file @
ac8c51c2
...
@@ -242,4 +242,5 @@
...
@@ -242,4 +242,5 @@
<string
name=
"to_open"
>
去开启
</string>
<string
name=
"to_open"
>
去开启
</string>
<string
name=
"crashed"
>
软件错误退出
</string>
<string
name=
"crashed"
>
软件错误退出
</string>
<string
name=
"invalid_shortcut"
>
无效的快捷方式
</string>
<string
name=
"invalid_shortcut"
>
无效的快捷方式
</string>
<string
name=
"return_to_duel"
>
返回决斗☞
</string>
</resources>
</resources>
mobile/src/main/res/values/attrs.xml
View file @
ac8c51c2
...
@@ -11,4 +11,7 @@
...
@@ -11,4 +11,7 @@
<attr
name=
"line_limit"
format=
"integer"
/>
<attr
name=
"line_limit"
format=
"integer"
/>
<attr
name=
"line_max_count"
format=
"integer"
/>
<attr
name=
"line_max_count"
format=
"integer"
/>
</declare-styleable>
</declare-styleable>
<declare-styleable
name=
"ShimmerView"
>
<attr
name=
"reflectionColor"
format=
"color"
/>
</declare-styleable>
</resources>
</resources>
\ No newline at end of file
mobile/src/main/res/values/strings.xml
View file @
ac8c51c2
...
@@ -242,4 +242,5 @@
...
@@ -242,4 +242,5 @@
<string
name=
"to_open"
>
to Open
</string>
<string
name=
"to_open"
>
to Open
</string>
<string
name=
"crashed"
>
YGOMobile Crashed!
</string>
<string
name=
"crashed"
>
YGOMobile Crashed!
</string>
<string
name=
"invalid_shortcut"
>
Invalid Shortcut
</string>
<string
name=
"invalid_shortcut"
>
Invalid Shortcut
</string>
<string
name=
"return_to_duel"
>
Return to Duel☞
</string>
</resources>
</resources>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment