Добавлена возможность позиционирования спрайтов
This commit is contained in:
parent
e8f7ff45eb
commit
550aa83f17
@ -2,11 +2,14 @@ package com.annimon.everlastingsummer;
|
|||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.media.MediaPlayer;
|
import android.media.MediaPlayer;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.text.*;
|
import android.text.*;
|
||||||
import android.text.style.ForegroundColorSpan;
|
import android.text.style.ForegroundColorSpan;
|
||||||
|
import android.util.DisplayMetrics;
|
||||||
|
import android.view.Gravity;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.WindowManager;
|
import android.view.WindowManager;
|
||||||
import android.widget.FrameLayout;
|
import android.widget.FrameLayout;
|
||||||
@ -35,6 +38,7 @@ public final class ViewActivity extends Activity {
|
|||||||
|
|
||||||
private Map<String, Person> names;
|
private Map<String, Person> names;
|
||||||
private Map<String, ImageView> spriteInContainer;
|
private Map<String, ImageView> spriteInContainer;
|
||||||
|
private DisplayMetrics displayMetrics;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
@ -43,6 +47,9 @@ public final class ViewActivity extends Activity {
|
|||||||
// Постоянная подсветка.
|
// Постоянная подсветка.
|
||||||
getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
|
getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
|
||||||
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
|
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
|
||||||
|
// Размер экрана.
|
||||||
|
displayMetrics = new DisplayMetrics();
|
||||||
|
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
|
||||||
|
|
||||||
setContentView(R.layout.main);
|
setContentView(R.layout.main);
|
||||||
instance = this;
|
instance = this;
|
||||||
@ -145,13 +152,46 @@ public final class ViewActivity extends Activity {
|
|||||||
img = new ImageView(this);
|
img = new ImageView(this);
|
||||||
spriteInContainer.put(whoid, img);
|
spriteInContainer.put(whoid, img);
|
||||||
}
|
}
|
||||||
|
final FrameLayout.LayoutParams flp = new FrameLayout.LayoutParams(
|
||||||
|
FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.MATCH_PARENT);
|
||||||
|
setSpritePosition(img, flp, position);
|
||||||
final String path = PathResolver.sprite(whoid, emotion, cloth, distance);;
|
final String path = PathResolver.sprite(whoid, emotion, cloth, distance);;
|
||||||
try {
|
try {
|
||||||
img.setImageBitmap(IOUtil.readBitmap(path));
|
img.setImageBitmap(IOUtil.readBitmap(path));
|
||||||
container.addView(img);
|
container.addView(img, flp);
|
||||||
} catch (Exception ioe) {}
|
} catch (Exception ioe) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("RtlHardcoded")
|
||||||
|
private void setSpritePosition(ImageView img, FrameLayout.LayoutParams params, String position) {
|
||||||
|
// Позиционирование спрайта. fleft, left, cleft, center, cright, right, fright
|
||||||
|
final int width = displayMetrics.widthPixels;
|
||||||
|
if (TextUtils.isEmpty(position) || position.equals("center")) {
|
||||||
|
params.setMargins(0, 0, 0, 0);
|
||||||
|
params.gravity = Gravity.CENTER_HORIZONTAL;
|
||||||
|
} else if (position.equals("left")) {
|
||||||
|
params.setMargins(0, 0, width/2, 0);
|
||||||
|
params.gravity = Gravity.LEFT;
|
||||||
|
} else if (position.equals("cleft")) {
|
||||||
|
params.setMargins(0, 0, width/3, 0);
|
||||||
|
params.gravity = Gravity.LEFT;
|
||||||
|
} else if (position.equals("right")) {
|
||||||
|
params.setMargins(width/2, 0, 0, 0);
|
||||||
|
params.gravity = Gravity.RIGHT;
|
||||||
|
} else if (position.equals("cright")) {
|
||||||
|
params.setMargins(width/3, 0, 0, 0);
|
||||||
|
params.gravity = Gravity.RIGHT;
|
||||||
|
} else if (position.equals("fleft")) {
|
||||||
|
params.setMargins(0, 0, 0, 0);
|
||||||
|
params.gravity = Gravity.LEFT;
|
||||||
|
img.setScaleType(ImageView.ScaleType.FIT_START);
|
||||||
|
} else if (position.equals("fright")) {
|
||||||
|
params.setMargins(0, 0, 0, 0);
|
||||||
|
params.gravity = Gravity.RIGHT;
|
||||||
|
img.setScaleType(ImageView.ScaleType.FIT_END);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void pause(final long duration) {
|
public void pause(final long duration) {
|
||||||
text("");
|
text("");
|
||||||
new Thread(new Runnable() {
|
new Thread(new Runnable() {
|
||||||
|
Loading…
Reference in New Issue
Block a user