我想让一个活动进入IMMERSIVE模式并在它启动时隐藏顶部和底部系统栏.
在android开发者网站上,他们说我应该使用setSystemUiVisibility()并提供SYSTEM_UI_FLAG_IMMERSIVE 和SYSTEM_UI_FLAG_HIDE_NAVIGATION.
我怎么能OnCreate()在活动的方法中这样做?我认为setSystemUiVisibilityActivity类中没有提供它,它应该在视图中发生.有解决方法吗?
UPDATE
确定根据门把我添加了以下行,但我没有看到任何更改,导航栏和按钮按钮仍然可见:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
}
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_IMMERSIVE);
}
//Rest of activity code
Run Code Online (Sandbox Code Playgroud) 我想知道是否可以在同一布局中使用两个表面并同时查看每个表面.将来我会看一个视频视图的网格视图,但每个视频视图都使用vlc.
我使用片段修改此示例(android-vlc-sample).
结果是我只看到一个视频......我该如何解决?
从log-cat我没有看到重要的错误,但我认为android UIThread存在渲染问题
Java编码
public class MultipleVideoPlayFragmentActivity extends FragmentActivity {
public final static String LOCATION = "com.compdigitec.libvlcandroidsample.MultipleVideoPlayFragmentActivity.location";
private static final String TAG = "MediaPlayer";
public String mFilePatha;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.activity_multiple_video_play_fragment);
Intent intent = getIntent();
mFilePatha = intent.getExtras().getString(LOCATION);
}
public static class VideoFragment extends Fragment implements
SurfaceHolder.Callback, IVideoPlayer {
public final static String TAG = "LibVLCAndroidSample/VideoActivity";
public final static String LOCATION = "com.compdigitec.libvlcandroidsample.VideoFragment.location";
private String mFilePath;
// display surface
private SurfaceView mSurface; …Run Code Online (Sandbox Code Playgroud) 这个问题在很多时候被问过,但我仍然找不到解决这个问题的好方法.
为什么我需要这样做?好吧,因为项目我和我的团队开发有iOS风格.
我尝试了什么?
那么有没有办法改变CardView的阴影颜色,只需对所有布局文件进行最少的编辑,并在视图外部绘制阴影,就像原始的CardView一样?
android shadow android-view android-cardview android-elevation
在第一次单击按钮时,我想View沿x轴滑动(向右滑动200像素).在第二次按下按钮时,我想View沿x轴向后滑动到原来的位置.
该View.setTranslationX(float)方法跳转查看与通话对象的水平位置myView.setTranslationX(200);和myView.setTranslationX(0);分别.任何人都知道我怎么能滑动的View,而不是目标的水平位置?
注1: A
TranslateAnimation是不好的,因为它实际上并没有移动,View但只是呈现它移动的错觉.注2:在提出问题时我没有意识到这些
setTranslationX(float)和setTranslationY(float)方法是从API级别11开始引入的.如果你的目标是针对Honeycomb(API级别11),那么Gautam K的答案就足够了.否则,请参阅我的答案以获得建议的解决方案
我在Android中寻找将采用输入(text,text_font_size,device_width)的方法,并根据这些计算,它将返回显示特定文本所需的高度?
我正在根据他的内容设置文本视图/ webview高度运行时,我知道warp内容但我不能在我的情况下使用因为一些web视图最小高度问题.
所以我试图计算高度,并根据我设置视图高度.
我尝试过以下方法
Paint paint = new Paint();
paint.setTextSize(text.length());
Rect bounds = new Rect();
paint.getTextBounds(text, 0, 1, bounds);
mTextViewHeight= bounds.height();
Run Code Online (Sandbox Code Playgroud)
所以输出是
1)"Hello World"返回字体15的高度13
2)"Jelly Bean的最新版本在这里,性能优化"返回字体15的高度16
然后我试过了
Paint paint = new Paint();
paint.setTextSize(15);
paint.setTypeface(Typeface.SANS_SERIF);
paint.setColor(Color.BLACK);
Rect bounds = new Rect();
paint.getTextBounds(text, 0, text.length(), result);
Paint.FontMetrics metrics = brush.getFontMetrics();
int totalHeight = (int) (metrics.descent - metrics.ascent + metrics.leading);
Run Code Online (Sandbox Code Playgroud)
所以输出是
1)"Hello World"返回字体15的高度17
2)"最新版本的Jelly Bean在这里,性能优化"返回字体15的高度17
如果我将这些值设置为我的视图然后剪切一些文本,它不会显示所有内容.
在某些桌子上它看起来还不错,因为它有很大的宽度而不是在手机上.
有没有办法根据内容计算高度?
是否可以onCreateView在a中手动调用方法Fragment,如果没有,是否可以通过某种方式模拟此调用?
我有一个FragmentActivitytabHost.每个选项卡都包含一个Fragment,我想Fragment在按下"刷新"按钮时刷新视图.更具体地说,我想重新调用该onCreateView方法.
我的代码目前看起来像:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
// Inflate the layout for this fragment
view= inflater.inflate(R.layout.fragment_hall, container, false);
layoutExsternal = (RelativeLayout) view.findViewById(R.id.layoutExsternal);
layoutHall = (RelativeLayout) view.findViewById(R.id.layoutHall);
init();
return view;
}
[...]
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
Log.d("itemSelected1", this.getClass().getSimpleName());
switch (item.getItemId()) {
case R.id.menu_refresh:
//HERE I want to insert a method for refresh o redraw
return true;
} …Run Code Online (Sandbox Code Playgroud) 我正在编写自己的图像查看器,使用户可以向左或向右滑动以查看下一个\上一个图像.我想根据投掷速度为图像变化设置动画.
为了检测一个手势和它的速度,我按照这个基本的手势检测,并按照接受的答案建议:
public class SelectFilterActivity extends Activity implements OnClickListener
{
private static final int SWIPE_MIN_DISTANCE = 120;
private static final int SWIPE_MAX_OFF_PATH = 250;
private static final int SWIPE_THRESHOLD_VELOCITY = 200;
private GestureDetector gestureDetector;
View.OnTouchListener gestureListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/* ... */
// Gesture detection
gestureDetector = new GestureDetector(this, new MyGestureDetector());
gestureListener = new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
return gestureDetector.onTouchEvent(event);
}
};
}
class MyGestureDetector extends SimpleOnGestureListener {
@Override …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Android的手势监听器和缩放监听器来实现缩放和拖动.问题是,当我执行捏拉缩放时,图像(我正在尝试缩放)反弹到特定位置.变焦位置也不居中.以下代码演示了我想要实现的目标.知道为什么图像跳跃(以及如何纠正)?
public class CustomView extends View {
Bitmap image;
int screenHeight;
int screenWidth;
Paint paint;
GestureDetector gestures;
ScaleGestureDetector scaleGesture;
float scale = 1.0f;
float horizontalOffset, verticalOffset;
int NORMAL = 0;
int ZOOM = 1;
int DRAG = 2;
boolean isScaling = false;
float touchX, touchY;
int mode = NORMAL;
public CustomView(Context context) {
super(context);
//initializing variables
image = BitmapFactory.decodeResource(getResources(),
R.drawable.image_name);
//This is a full screen view
screenWidth = getResources().getDisplayMetrics().widthPixels;
screenHeight = getResources().getDisplayMetrics().heightPixels;
paint = new Paint();
paint.setAntiAlias(true);
paint.setFilterBitmap(true);
paint.setDither(true);
paint.setColor(Color.WHITE); …Run Code Online (Sandbox Code Playgroud) android image-processing gesture-recognition android-view pinchzoom
目标:
创建可绘制和可缩放的imageview,
这意味着当我按下按钮时,它是可绘制的,
或者当我关闭时,这是可缩放的.
*请注意,图纸应与图像视图一起变焦
================================================== =============
最近我写了一个像这样的自定义可绘制图像视图:
public class DrawView extends ImageView {
private int color = Color.BLACK;
private float width = 4f;
private List<Holder> holderList = new ArrayList<Holder>();
private class Holder {
Path path;
Paint paint;
Holder(int color, float width) {
path = new Path();
paint = new Paint();
paint.setAntiAlias(true);
paint.setStrokeWidth(width);
paint.setColor(color);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeJoin(Paint.Join.ROUND);
paint.setStrokeCap(Paint.Cap.ROUND);
}
}
public DrawView(Context context) {
super(context);
init();
}
public DrawView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public DrawView(Context context, AttributeSet …Run Code Online (Sandbox Code Playgroud) android android-imageview android-canvas android-view android-drawable
此问题与如何检测视图是否已附加或分离无关.
一般情况下,何时附加或分离视图?这有生命周期图吗?
为了澄清,我正在寻找以下内容的答案:活动发送到背景,不透明视图放在顶部,可见性设置为GONE,查看膨胀,父级分离等等.这不是一个详尽的列表 - 我只是想了解如何从根本上讲,附加和分离观点是有效的.
更新我想要获得的更多示例:
碎片与活动怎么样?
嵌套视图怎么样 - 附加/分离视图的顺序是什么(parent-> child或child-> parent)?
视图是在附加之前还是之后测量的?
如何手动将addView()用于ViewGroup?
编辑:摘要:
setContentView().视图在使用不同视图调用onDestroy()时或在setContentView()调用时分离.onViewCreated()完成后附加,并在onDestroyView()完成后分离.addView()和分离removeView()setVisibility() 不会影响视图的附加状态