Articles of 自定义视图

如何从ViewGroup(FrameLayout)获取特定(自定义)视图的索引onLongClick在View

有人可以帮我用我的语法? 我dynamic地将一些视图(自定义视图)添加到已经在XML中定义的FrameLayout。 这些自定义视图是不同的types或相同的types。 我可以将视图添加到屏幕,但无法从ViewGroup中删除特定的视图(与其types相同或不同)。 那些具有onTouch()自定义视图。 在这里,我面临的问题:无法触发long click ,总是需要touch listener 如果用户长时间点击select一个视图,我必须在这里创build两个选项 改变背景颜色 删除视图。 编辑:根据taobuild议,我可以得到长按查看索引,如果没有触摸监听器的查看。 但我必须实现触摸听众一起长按… 我怎样才能做到这一点?

自定义seekbar获取其边缘切割

可能重复: Android的SeekBar拇指被剪切/切断 我正在做一个自定义的search栏,按照这个教程: http : //www.mokasocial.com/2011/02/create-a-custom-styled-ui-slider-seekbar-in-android/ 但是,当我把search的拇指,或者在开始或结束时,它的边缘被切断,像这样: http : //s2.postimage.org/d9dqrrms/myseekbar.png 我已经完成了教程所说的(只是改变了渐变颜色)。 怎么了?

带有setContentView的Android ProgressDialog

我已经读了很多这方面的知识,而且看不到以前做过或尝试过的任何人。 所以我有一个扩展ImageView的对象,然后在这个对话框中调用进度对话框,并将进度对话框的内容设置为imageview(即尝试在imageview..view中绘制进度对话框)。 loadingProgressDialog.setContentView(this); //this is: LoaderImageView extends ImageView loadingProgressDialog.setIndeterminate(true); loadingProgressDialog.show(); 我得到错误:在添加内容之前,必须调用requestFeature() 现在我已经看到这个错误之前负载的post,是的答案似乎很明显。 我试图设置所有的function: loadingProgressDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); loadingProgressDialog.requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); loadingProgressDialog.getWindow().requestFeature(Window.FEATURE_PROGRESS); loadingProgressDialog.getWindow().requestFeature(Window.FEATURE_INDETERMINATE_PROGRESS); 但首先我不明白为什么我需要这个? 其次他们都不工作! 所以问题是我可以将ProgressDialog contentView设置为一个ImageView? 如果是的话,我得到了什么错误?

自定义视图扩展相对布局

package com.binod.customviewtest; import android.content.Context; import android.view.LayoutInflater; import android.widget.RelativeLayout; public class CustomView extends RelativeLayout{ public CustomView(Context context) { super(context); // TODO Auto-generated constructor stub // LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); LayoutInflater mInflater = LayoutInflater.from(context); mInflater.inflate(R.layout.custom_view , this, true); } } 包括如 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <com.binod.customviewtest.CustomView android:layout_width="match_parent" android:layout_height="wrap_content" ></com.binod.customviewtest.CustomView> </RelativeLayout> 自定义视图为 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" […]

android:如何使用attributeset构造函数实例化我的自定义视图

我的自定义视图具有dynamic自定义属性,例如backgroundimage属性,通过当前星期分配。 我不想使用build设者CalendarView(上下文上下文,AttributeSet attrs)传递几个属性,我尝试使用Xml.asAttributeSet实例化属性集,但它不能工作。 谁能告诉我该怎么办。 注意:我的自定义视图具有dynamic属性,所以我不想通过xml布局来实例化自定义视图。 我的解决scheme不正确? 这里是自定义视图: public class CalendarView extends View { int backgroundImage; public CalendarView(Context context, AttributeSet attrs) { super(context, attrs); backgroundImage = attrs.getAttributeResourceValue("http://www.mynamespace.com", "backgroundimage", 0); } } 这里是活动: public class TestActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(createTestView(0)); } public CalendarView createTestView(int currentWeek) throws XmlPullParserException, IOException { String attributes […]

我怎样才能获得自定义视图的onDraw方法以外的canvas大小?

我需要能够访问视图的canvas大小来执行一些计算。 出于某种原因,传递给onSizeChanged的视图的大小与传递给onDraw的canvas的大小不同。 我当前的解决方法使用布尔标志来确定何时需要执行计算。 理想的解决scheme将允许我在onSizeChanged方法中执行这些计算,所以我想知道…有什么办法可以在onDraw方法之外获取Canvas对象的位置(或者至less是维度)吗? 我的代码如下。 它以一个给定的angular度绘制一个圆的半径。 当我使用canvas.centerX()来确定半径的起点和终点时,一切正常。 如果我使用传递给onSizeChanged的参数,它甚至不是很接近正确的。 @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(w, h, oldw, oldh); mSizeChanged = true; } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); if (mSizeChanged) { RectF bounds = new RectF(canvas.getClipBounds()); float centerX = bounds.centerX(); float centerY = bounds.centerY(); float radianAngle = (float) […]

一个自定义的View可以知道onPause被调用了吗?

我有一个自定义视图运行一个线程操作,周围打电话给interwebs定期。 我想知道是否有一种方法让我不必从父Activity(onPause)中删除该线程,以便在Activity被禁用(和/或终止)之后线程不会在后台碾磨。 这里的意图是自定义视图是自给自足的,不需要额外的处理。 做到这一点的方法是让它监听父母的后台时间,然后让线程中的无限睡眠循环过期。 我没有办法做到这一点,但我希望我可以忽略一些东西。

Android – 是否有可能创build一个自定义的库来使用多个应用程序?

是否有可能在Android中创build自定义库(拥有自己的布局资源),以便在多个Android应用程序中使用? 我创build了一个常规的* .jar文件,但是当我尝试dynamic创build/设置我的视图样式时,大多数属性都不起作用。 即使从android.jar文件(如android.attr.listSeparatorTextViewStyle)引用简单样式也不起作用。 我创build了一个没有任何Activity的Android项目,拥有自己的资源文件,然后从另一个Android项目中引用此项目以在其构buildpath中使用。 一切似乎工作正常,但当我尝试运行该项目时,模拟器不断崩溃( LogCat中没有有意义的错误信息)。 我错过了什么吗?

自定义可检视视图,它响应select器

我有一组FrameLayout ,我想要检查/可选, 也就是说,点击后,我想FrameLayout显示为checked – 再次按下时,我希望它成为未经checked 。 更重要的是,我希望通过使用<selector>来像往常一样描述这个可视化问题。 我似乎无法得到这个工作 – 我不知道我错过了什么: public class CheckableFrameLayout extends FrameLayout implements Checkable { private boolean mChecked = false; public CheckableFrameLayout(Context context, AttributeSet attrs) { super(context, attrs); } @Override public void setChecked(boolean checked) { mChecked = checked; refreshDrawableState(); } public boolean isChecked() { return mChecked; } public void toggle() { setChecked(!mChecked); […]

Android自定义视图位图内存泄漏

我有一个自定义的视图,我需要绘制两个位图,一个是背景,代表地图的图像,另一个是在canvas的顶部/左侧位置绘制的图钉。 在包含视图的活动的实况中,这两个图像都绘制在Draw上并保持不变。 过了一会儿,我得到了一个 OutOfMemoryError:位图大小超过虚拟机预算 这意味着我有泄漏,位图不会被垃圾收集。 我之前问过这个问题,但现在情况有所改变。 我做了一个init方法来设置我想要使用的位图,但是这仍然不是一个好的方法,错误稍后出现,但仍然存在。 这是代码 public class MyMapView extends View { private int xPos = 0; private int yPos = 0; private int space = 0; private Bitmap resizedBitmap; private Bitmap position; private Bitmap mapBitmap; public void setMapBitmap(Bitmap value) { this.mapBitmap = value; } public MyMapView(Context context) { super(context); } public MyMapView(Context […]