Изменён способ доступа к спрайтам

This commit is contained in:
Victor 2015-04-06 17:07:18 +03:00
parent a2249d130a
commit 59fc1e68dd
3 changed files with 9 additions and 10 deletions

View File

@ -146,16 +146,17 @@ public final class Parser {
private boolean show() { private boolean show() {
final String whoid = consume(TokenType.WORD).getText(); final String whoid = consume(TokenType.WORD).getText();
final String emotion = lookMatch(0, TokenType.WORD) ? consume(TokenType.WORD).getText() : ""; String params = ""; // emotion? cloth? distance?
final String cloth = lookMatch(0, TokenType.WORD) ? consume(TokenType.WORD).getText() : ""; while (lookMatch(0, TokenType.WORD)) {
final String distance = lookMatch(0, TokenType.WORD) ? consume(TokenType.WORD).getText() : ""; params += consume(TokenType.WORD).getText();
}
// Положение (left, cleft, ...) // Положение (left, cleft, ...)
String position = ""; String position = "";
if (match(TokenType.AT)) { if (match(TokenType.AT)) {
position = consume(TokenType.WORD).getText(); position = consume(TokenType.WORD).getText();
} }
matchWithEffect(); matchWithEffect();
ViewActivity.getInstance().sprite(whoid, emotion, cloth, distance, position); ViewActivity.getInstance().sprite(whoid, params, position);
return false; return false;
} }

View File

@ -22,13 +22,11 @@ public final class PathResolver {
return SCRIPT_ASSETS + "/" + name; return SCRIPT_ASSETS + "/" + name;
} }
public static String sprite(String whoid, String emotion, String cloth, String distance) { public static String sprite(String whoid, String params) {
final StringBuilder sb = new StringBuilder(); final StringBuilder sb = new StringBuilder();
sb.append(SPRITE); sb.append(SPRITE);
sb.append(TextUtils.isEmpty(distance) ? "normal" : distance).append('/');
sb.append(whoid.toLowerCase(Locale.ENGLISH)).append('/'); sb.append(whoid.toLowerCase(Locale.ENGLISH)).append('/');
sb.append(emotion); sb.append(TextUtils.isEmpty(params) ? "normal" : params);
sb.append(cloth);
sb.append(PNG); sb.append(PNG);
return sb.toString(); return sb.toString();
} }

View File

@ -160,7 +160,7 @@ public final class ViewActivity extends Activity {
spriteInContainer.clear(); spriteInContainer.clear();
} }
public void sprite(String whoid, String emotion, String cloth, String distance, String position) { public void sprite(String whoid, String params, String position) {
ImageView img; ImageView img;
if (spriteInContainer.containsKey(whoid)) { if (spriteInContainer.containsKey(whoid)) {
img = spriteInContainer.get(whoid); img = spriteInContainer.get(whoid);
@ -171,7 +171,7 @@ public final class ViewActivity extends Activity {
final FrameLayout.LayoutParams flp = new FrameLayout.LayoutParams( final FrameLayout.LayoutParams flp = new FrameLayout.LayoutParams(
FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.MATCH_PARENT); FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.MATCH_PARENT);
setSpritePosition(img, flp, position); setSpritePosition(img, flp, position);
final String path = PathResolver.sprite(whoid, emotion, cloth, distance);; final String path = PathResolver.sprite(whoid, params);
try { try {
img.setImageBitmap(IOUtil.readBitmap(path)); img.setImageBitmap(IOUtil.readBitmap(path));
container.addView(img, flp); container.addView(img, flp);