标签: android-view

在android kitkat中使用新的IMMERSIVE模式

我想让一个活动进入IMMERSIVE模式并在它启动时隐藏顶部和底部系统栏.

在android开发者网站上,他们说我应该使用setSystemUiVisibility()并提供SYSTEM_UI_FLAG_IMMERSIVESYSTEM_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)

android android-view android-4.4-kitkat

22
推荐指数
2
解决办法
3万
查看次数

android libvlc多个表面问题

我想知道是否可以在同一布局中使用两个表面并同时查看每个表面.将来我会看一个视频视图的网格视图,但每个视频视图都使用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)

android vlc libvlc android-fragments android-view

22
推荐指数
1
解决办法
2188
查看次数

更改CardView阴影颜色

这个问题在很多时候被问过,但我仍然找不到解决这个问题的好方法.

为什么我需要这样做?好吧,因为项目我和我的团队开发有iOS风格.

我尝试了什么?

  1. 9.pathch阴影生成器,但9.pathes本质上是pngs,它给了我没有灵活性,如果我将使用这种方法,我应该编辑边缘到处.
  2. 它支持自定义阴影的碳库,它们被绘制到视图边框之外,但是当库不为圆角绘制阴影时,存在关于圆角矩形的问题.
  3. 使用旧的CardView实现并覆盖其阴影颜色,但它被绘制在卡片边界内,因此它不是选项.

那么有没有办法改变CardView的阴影颜色,只需对所有布局文件进行最少的编辑,并在视图外部绘制阴影,就像原始的CardView一样?

android shadow android-view android-cardview android-elevation

22
推荐指数
4
解决办法
2万
查看次数

如何为View的翻译设置动画

在第一次单击按钮时,我想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 android-animation android-view

21
推荐指数
2
解决办法
4万
查看次数

如何根据设备宽度和字体大小测量TextView高度?

我在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

如果我将这些值设置为我的视图然后剪切一些文本,它不会显示所有内容.

在某些桌子上它看起来还不错,因为它有很大的宽度而不是在手机上.

有没有办法根据内容计算高度?

android textview android-layout android-canvas android-view

21
推荐指数
3
解决办法
2万
查看次数

是否可以在片段中手动调用onCreateView?

是否可以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)

android fragment android-view fragment-tab-host

21
推荐指数
2
解决办法
3万
查看次数

在具有相同密度的不同Android设备上具有不同的fling(滑动)速度

我正在编写自己的图像查看器,使用户可以向左或向右滑动以查看下一个\上一个图像.我想根据投掷速度为图像变化设置动画.

为了检测一个手势和它的速度,我按照这个基本的手势检测,并按照接受的答案建议:

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)

java android android-animation android-view android-gesture

21
推荐指数
3
解决办法
1万
查看次数

使用Android的内置手势监听器和缩放监听器实现缩放和拖动

我正在尝试使用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

21
推荐指数
1
解决办法
2万
查看次数

在android中创建可绘制和可缩放的图像视图

目标:

创建可绘制和可缩放的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

21
推荐指数
1
解决办法
3476
查看次数

视图何时附加和分离?

此问题与如何检测视图是否已附加或分离无关.

一般情况下,何时附加或分离视图?这有生命周期图吗?

为了澄清,我正在寻找以下内容的答案:活动发送到背景,不透明视图放在顶部,可见性设置为GONE,查看膨胀,父级分离等等.这不是一个详尽的列表 - 我只是想了解如何从根本上讲,附加和分离观点是有效的.

更新我想要获得的更多示例:

碎片与活动怎么样?
嵌套视图怎么样 - 附加/分离视图的顺序是什么(parent-> child或child-> parent)?
视图是在附加之前还是之后测量的?
如何手动将addView()用于ViewGroup?

编辑:摘要:

  • 对于活动,视图附在setContentView().视图在使用不同视图调用onDestroy()时或在setContentView()调用时分离.
  • 对于碎片,视图onViewCreated()完成后附加,并在onDestroyView()完成后分离.
  • 对于ViewGroups,视图附加addView()和分离removeView()
  • setVisibility() 不会影响视图的附加状态

android android-view

21
推荐指数
1
解决办法
1万
查看次数