标签: android-view

如何在片段中设置SessionView?

现在我有了这个片段,我想使用setContentView,但到目前为止我无法找到.您可以在下面的代码中看到我的情况,我不是试图给布局充气,我试图将它与名为SampleView的视图一起使用.那我该怎么办呢?提前致谢

public class largeImageScroller extends SherlockFragment {

// Physical display width and height.
private static int displayWidth = 0;
private static int displayHeight = 0;

/** Called when the activity is first created. */
public View onCreateView(LayoutInflater inflater, ViewGroup group, Bundle saved) {

        getActivity();
        // displayWidth and displayHeight will change depending on screen
        // orientation. To get these dynamically, we should hook onSizeChanged().
        // This simple example uses only landscape mode, so it's ok to get them
        // once on …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-view

32
推荐指数
3
解决办法
8万
查看次数

java.lang.IllegalArgumentException:pointerIndex超出范围异常 - dispatchTouchEvent

我在自定义视图中有这个方法,它扩展了FrameLayout:

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
    int currentItem = vp.getCurrentItem();
    if (inDragPanelZone(currentItem, ev.getX(), ev.getY()) && ev.getAction() == MotionEvent.ACTION_DOWN) {      
        if (!shouldAllowPaging()) { 
            return true; 
        }
        vp.setPagingEnabled(true);
    }
    return super.dispatchTouchEvent(ev);
}
Run Code Online (Sandbox Code Playgroud)

偶尔 - 我得到以下例外:

java.lang.IllegalArgumentException: pointerIndex out of range
at android.view.MotionEvent.nativeGetAxisValue(Native Method)
at android.view.MotionEvent.getX(MotionEvent.java:1995)
at android.support.v4.view.MotionEventCompatEclair.getX(MotionEventCompatEclair.java:32)
at android.support.v4.view.MotionEventCompat$EclairMotionEventVersionImpl.getX(MotionEventCompat.java:86)
at android.support.v4.view.MotionEventCompat.getX(MotionEventCompat.java:210)
at android.support.v4.view.ViewPager.onTouchEvent(ViewPager.java:1734)
at android.view.View.dispatchTouchEvent(View.java:5710)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1951)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1712)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1726)
at MyView.dispatchTouchEvent(DraggablePane.java:176)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1726)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1726)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1726)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1918) …
Run Code Online (Sandbox Code Playgroud)

android android-view

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

setAlpha和setImageAlpha之间的区别

ImageView有两种方法相关的方法:setAlphasetImageAlpha.前者从API级别1开始可用,但从级别16开始不推荐使用.后者从16级开始可用.还有另一个setAlpha方法,来自View类,这是在API级别11中引入的.

ImageView#setAlpha和ImageView#setImageAlpha之间的区别仅在于命名吗?有任何行为差异吗?View#setAlpha和ImageView#setAlpha之间的关系是什么?

android android-imageview android-view

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

左上角的ConstraintLayout视图

每当我创建类似ButtonTextView中的视图时ConstraintLayout,它们都会卡在顶角而不是我放置的位置.

我尝试创建新活动并更改模拟器,但结果仍然相同.

这是正在发生的事情的屏幕截图:

在此输入图像描述

可能是什么问题?

android android-layout android-view view-hierarchy android-constraintlayout

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

Android onClick方法不适用于自定义视图

我已经开始研发应用了.我昨天建立了菜单但是onClick方法不起作用!我创建了一个扩展View并调用她的MainMenuObject的类 - 该类用于主菜单中的任何对象(按钮,徽标等).我为他们创建了一个特殊的类,因为我在菜单启动时正在做动画.在我构建了MainMenuObject类后,我构建了另一个扩展View的类(OpeningTimesView),它将包含主菜单的所有按钮,并将作为主要活动的布局.

一切都很好,动画非常好,我想把听众放在我的按钮上,所以我在onClickListener上添加了一个实现onClickListener,并覆盖了onClick方法.然后我用setOnClickListener(this)和setClickable(true)将监听器添加到按钮,但它不起作用!我已经尝试了一切!请帮我弄清楚我做错了什么.我已经为onClick方法添加了一个toast,它不依赖于任何"if",但它不会显示.

(BTW有没有办法将屏幕宽度和高度定义为所有类都可以访问的变量?它不能是静态的,因为你从显示对象获得高度和宽度但必须有另一种方式)

这是代码:

public class OpeningTimesView extends View implements OnClickListener{
    private MainMenuObjectView searchButton;
    private MainMenuObjectView supportButton;
    private MainMenuObjectView aboutButton;
    private int screenWidth;
    private int screenHeight;
    public OpeningTimesView(Context context, Display dis) {
        super(context);

        this.screenWidth = dis.getWidth();
        this.screenHeight = dis.getHeight();

        searchButton = new MainMenuObjectView(context, 200, MovingMode.RIGHT, R.drawable.search, dis);
        supportButton = new MainMenuObjectView(context, 400, MovingMode.LEFT, R.drawable.support, dis);
        aboutButton = new MainMenuObjectView(context, 600, MovingMode.RIGHT, R.drawable.about, dis);

        searchButton.setClickable(true);
        supportButton.setClickable(true);
        aboutButton.setClickable(true);

        searchButton.setOnClickListener(this);
        supportButton.setOnClickListener(this);
        aboutButton.setOnClickListener(this);
    }

    @Override
    public void onClick(View view){
        Toast.makeText(getContext(), "Search button …
Run Code Online (Sandbox Code Playgroud)

android android-custom-view android-view

28
推荐指数
7
解决办法
4万
查看次数

在API 11之前,Android等效解决了View.getX()的问题?

我在视图上使用getX()和getY()方法来获取一些特殊的拖动逻辑(不是动画,即我从不使用setX/Y方法,我只需要getter来检查).

但是,我已经意识到这些仅在API 11之后可用.

getX()的文档说是添加了'left'属性和'translationX'属性.一切都很好,除了get/setTranslationX()以及API 11之后.

我想知道是否有任何关于这种方法在幕后返回的知识,所以我可以提出一个解决方法.

android android-view

28
推荐指数
2
解决办法
6897
查看次数

带有页面指示器的Android视图寻呼机

我需要在视图分页器文件中获取包含图像的页面指示符.这是我的代码.

public class IndicatorActivity extends Activity {


 /** Called when the activity is first created. */
    @Override

        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);

            MyPagerAdapter adapter = new MyPagerAdapter();
            ViewPager myPager = (ViewPager) findViewById(R.id.pager);
            myPager.setAdapter(adapter);
            myPager.setCurrentItem(0);
            TitlePageIndicator indicator = (TitlePageIndicator)findViewById(R.id.indicat);
            indicator.setViewPager( myPager );
    }
}
Run Code Online (Sandbox Code Playgroud)

在这段代码中,我得到一个错误 TitlePageIndicator indicator = (TitlePageIndicator)findViewById(R.id.indicat);TitlePageIndicator cannot be resolved to a type.这是什么错误.我该如何解决?

这是我的xml代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
         />
    <com.viewpagerindicator.TitlePageIndicator
    android:id="@+id/indicat"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent" />
</LinearLayout> …
Run Code Online (Sandbox Code Playgroud)

android activity-indicator android-view android-viewpager viewpagerindicator

27
推荐指数
4
解决办法
10万
查看次数

Android windowSoftInputMode ="adjustPan"滚动一些

请考虑以下示例:

<LinearLayout>
    <EditText />
    <Button />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

并在清单文件中:

android:windowSoftInputMode="adjustPan"
Run Code Online (Sandbox Code Playgroud)

onfocus edittext,软键盘覆盖如下按钮:

在此输入图像描述

但我喜欢这样:

在此输入图像描述

如何滚动视图以使按钮可见?

android android-layout android-xml android-view

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

Android ViewGroup:我应该在onLayout()覆盖中做什么?

扩展Android ViewGroup类时,onLayout()覆盖的目的是什么?我在Android中进行自定义控件但由于某种原因,内容(子View对象)没有显示.我的方法是扩展ViewGroup类,通过addView()ViewGroup 的方法添加子视图.然后,在我的主要活动中,我有以下代码:

ChannelController myCC = new ChannelController(this); 
setContentView(myCC); 
Run Code Online (Sandbox Code Playgroud)

ChannelController是我的自定义类的名称,它扩展了ViewGroup.我必须做错事,因为屏幕上没有显示任何内容.

我知道我必须覆盖并实现onLayout()方法,但是用什么?我知道在dev.android网站上有一整页专门用于此,但它对我没有多大帮助,主要是因为我认为我是新手.任何见解将不胜感激.

作为参考,我的ViewGroup扩展如下所示:

public class ChannelController extends ViewGroup {

    final String TAG = "JAL"; 

    public ChannelController(Context c) 
    {   
        super(c); 
        init(c); 
    }

    public ChannelController(Context c, AttributeSet attibset)
    {
        super(c); 
        init(c); 
    }

    public ChannelController(Context c, AttributeSet attribset, int defStyle)
    {
        super(c); 
        init(c); 
    }

    public void init(Context c)
    {
        //RelativeLayout wrap = new RelativeLayout(c);
        RelativeLayout.LayoutParams wrapLP = new RelativeLayout.LayoutParams(
                RelativeLayout.LayoutParams.MATCH_PARENT, 
                RelativeLayout.LayoutParams.WRAP_CONTENT); 

        RelativeLayout r1 = new RelativeLayout(c); 
        RelativeLayout.LayoutParams r1LP …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-view

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

Android:使用文本内部绘制圆圈

我需要在我的片段中绘制三个圆圈,圆圈的大小不同,我引用此链接 我获得的结果是这个

在此输入图像描述

这是我的XML代码:UPDATED

<?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center" >
         <TextView
             android:id="@+id/large_volume"
             android:layout_width="185dp"
             android:layout_height="185dp"
             android:background="@drawable/circle"
             android:gravity="center"
             android:text="My name is NON"
             android:textColor="#FFFFFF"
             android:textSize="10dp" />

         <TextView
             android:id="@+id/medium_volume"
             android:layout_width="120dp"
             android:layout_height="120dp"
             android:layout_alignTop="@+id/large_volume"
             android:layout_toRightOf="@+id/large_volume"
             android:background="@drawable/circle"
             android:gravity="center"
             android:text="My name is NON"
             android:textColor="#FFFFFF"
             android:textSize="10dp" />

         <TextView
             android:id="@+id/TextView02"
             android:layout_width="90dp"
             android:layout_height="90dp"
             android:layout_below="@+id/medium_volume"
             android:layout_toRightOf="@+id/large_volume"
             android:background="@drawable/circle"
             android:gravity="center"
             android:layout_marginTop="-3dp"
             android:layout_marginLeft="-17dp"
             android:text="My name is NON"
             android:textColor="#FFFFFF"
             android:textSize="10dp" />

    </RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

但我需要的是这样的 在此输入图像描述

你可以看到圈子必须紧密相连,但是当我使用XML视图时,我无法实现这一点.我怎样才能实现这一点,我需要onClickListeners在我的圈子中这就是为什么我使用视图

这可以通过Canvas绘图实现,我听说画布不是视图所以这会限制我给点击听众,如果我错了纠正我

更新:

我通过XML方法满足了我的需求,有没有办法通过画布绘图实现这一点,我应该发布另一个问题吗?

android android-layout android-canvas android-view

27
推荐指数
3
解决办法
5万
查看次数