我有一个滚动视图,围绕我的整个布局,使整个屏幕滚动。 我在这个ScrollView中的第一个元素是一个HorizontalScrollView块,它具有可以水平滚动的function。 我已经在horizontalscrollview中添加了一个ontouchlistener来处理触摸事件,并强制视图“捕捉”ACTION_UP事件中最接近的图像。 所以我要去的效果就像股票的安卓主屏幕,你可以从一个滚动到另一个,当你拿起你的手指时,它会捕捉到一个屏幕。 这一切都很好,除了一个问题:我需要左右滑动几乎完全水平为ACTION_UP永远注册。 如果我至less垂直滑动(我认为很多人倾向于在左右滑动时使用手机),我将收到ACTION_CANCEL而不是ACTION_UP。 我的理论是,这是因为horizontalscrollview在滚动视图内,滚动视图劫持垂直触摸允许垂直滚动。 如何从我的水平滚动视图中禁用滚动视图的触摸事件,但是仍然允许在滚动视图中的其他地方进行正常的垂直滚动? 以下是我的代码示例: public class HomeFeatureLayout extends HorizontalScrollView { private ArrayList<ListItem> items = null; private GestureDetector gestureDetector; View.OnTouchListener gestureListener; private static final int SWIPE_MIN_DISTANCE = 5; private static final int SWIPE_THRESHOLD_VELOCITY = 300; private int activeFeature = 0; public HomeFeatureLayout(Context context, ArrayList<ListItem> items){ super(context); setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); setFadingEdgeLength(0); this.setHorizontalScrollBarEnabled(false); […]
我正在为我的应用程序小部件实施wigdget透明度选项,虽然我有一些麻烦得到正确的hex颜色值。 对于hex颜色透明度来说,这是一个全新的东西,我search了一下,虽然我找不到具体的答案。 我想通过hex颜色设置透明度,所以我们说我的hex颜色ID“#33b5e5”,我希望它是50%透明。 那么我会用“#8033b5e5”,因为80是50%。 我在这里find了一个有用的图表: http : //www.dtp-aus.com/hexadeci.htm 。 有了这个数据,我设法想出了这个: 0% = #00 10% = #16 20% = #32 30% = #48 40% = #64 50% = #80 60% = #96 70% = #112 80% = #128 90% = #144 现在问题开始出现,当我得到高于100hex。 hex颜色代码只能是8个符号长的权利? 例如#11233b5e5(80%)崩溃。 我能做些什么来使我能够使用更高的数字?
我有一个小问题,创build一个目录,并在我的android应用程序上保存一个文件。 我正在使用这段代码来做到这一点: String filename = "MyApp/MediaTag/MediaTag-"+objectId+".png"; File file = new File(Environment.getExternalStorageDirectory(), filename); FileOutputStream fos; fos = new FileOutputStream(file); fos.write(mediaTagBuffer); fos.flush(); fos.close(); 但它抛出一个例外: java.io.FileNotFoundException:/mnt/sdcard/MyApp/MediaCard/MediaCard-0.png(没有这样的文件或目录) 在这一行: fos = new FileOutputStream(file); 如果我将文件名设置为: "MyApp/MediaTag-"+objectId+"它正在工作,但是如果我尝试创build文件并将其保存到另一个目录,则抛出exception。 另一个问题:有没有办法让我的文件在外部存储保密,所以用户不能在库中看到他们,只要他连接他的设备作为Disk Drive ?
如何根据设备configuration格式正确设置年,月,日,时,分的date和时间?
我可以在Eclipse的Android模拟器中执行什么操作,将其连接到本地主机Web服务器页面http://localhost或http://127.0.0.1 ? 我已经尝试过了,但是仿真器仍然像Googlesearch本地主机一样接收我的请求,或者更糟糕的是,当我的Web服务器正常运行时,它没有find页面。
我目前正在像这样在TextView中呈现HTMLinput: tv.setText(Html.fromHtml("<a href='test'>test</a>")); 所显示的HTML是通过外部资源提供给我的,所以我不能按照我的意思去改变,但是我可以用一些正则expression式来篡改HTML,把href的值改成别的东西。 我想要的是能够直接从应用程序中处理链接点击,而不是让链接打开一个浏览器窗口。 这完全可以实现吗? 我猜测有可能将href-value的协议设置为“myApp://”,然后注册一些让我的应用程序处理该协议的东西。 如果这确实是最好的方法,我想知道这是怎么做的,但我希望有一个更简单的方法来说,“当在这个文本框中点击链接,我想提出一个事件,接收链接的href值作为input参数“
有什么办法可以在android中调整文本视图中的文本大小,以适应它占据的空间? 例如,我正在使用TableLayout并添加几个TextView的每一行。 由于我不希望TextView包装文本,我宁愿看到它降低了内容的字体大小。 有任何想法吗? 我已经尝试了measureText ,但是因为我不知道列的大小,所以使用起来似乎很麻烦。 这是我想要改变字体大小的代码 TableRow row = new TableRow(this); for (int i=0; i < ColumnNames.length; i++) { TextView textColumn = new TextView(this); textColumn.setText(ColumnNames[i]); textColumn.setPadding(0, 0, 1, 0); textColumn.setTextColor(getResources().getColor(R.drawable.text_default)); row.addView(textColumn, new TableRow.LayoutParams()); } table.addView(row, new TableLayout.LayoutParams());
我想从设备中检索SMS消息并显示它们?
现在,我将每个xml布局文件存储在布局文件夹中,所以pipe理小型项目是可行和简单的,但是当存在大型和繁重项目的情况时,应该有一个层次结构和子文件夹布局文件夹。 例如 layout — layout_personal — personal_detail.xml — personal_other.xml –layout_address — address1.xml — address2.xml 就像同样的方式,我们希望有大型应用程序的子文件夹,所以有没有办法在android项目中这样做? 我能够在layout文件夹内创buildlayout-personal和layout_address子文件夹,但是当使用R.layout访问xml布局文件的时候。 _ ,那时菜单里面没有任何xml布局popup。
我想知道为不同的语言命名我的文件夹。 我在哪里可以findAndroid上支持的语言列表?