我的问题陈述是从公司网站上获取公司徽标。我将输入作为公司网站的网址。我们如何从中获取公司徽标。我需要在Android App中实现它。 例如,我有一个带按钮的Edittextbox。当用户在edittextbox中输入文本时,即公司的网址,例如www.google.com。当用户点击搜索时,我需要显示公司徽标,即谷歌。我怎么能在android
中实现这个目标答案 0 :(得分:2)
使用Glide:
// app build.gradle
compile 'com.github.bumptech.glide:glide:3.7.0'
Glide.with(this)
.load(yourEdittext.getText().toString) //Edit
.diskCacheStrategy(DiskCacheStrategy.ALL)
.signature(new StringSignature(UUID.randomUUID().toString())) //use this
.into(imgView);
答案 1 :(得分:0)
使用Android的picasso或glide库。
答案 2 :(得分:0)
仅使用域名网址无法做到这一点。你需要一个特定的url图像库,如毕加索或滑翔等工作。因为每个站点都有不同的html代码,你必须首先在html中找到徽标,这是不可能的,因为不是每个站点都是相同的。如果您知道公司的图片网址,只需使用该网址并按照建议使用图书馆。
答案 3 :(得分:0)
所以这就是我试图获取徽标。我使用JSoup库来读取html页面源代码。 在那里我调用了html的链接元素。在获取了所有链接元素后,我检查了图标。从那里我得到了徽标的href,在获得源代码后,我完成了我的徽标查找。
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import com.squareup.picasso.Picasso;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;
public class MainActivity extends AppCompatActivity {
String url="";
EditText editText;
ImageView imageView;
Button button;
TextView textView;
ProgressDialog mProgressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText=(EditText) findViewById(R.id.editText);
imageView=(ImageView)findViewById(R.id.imageView);
button=(Button)findViewById(R.id.button);
textView=(TextView)findViewById(R.id.textView);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(editText.getText().toString()!=null && !editText.getText().toString().isEmpty())
{
String temp=editText.getText().toString();
if(temp!=null && !temp.isEmpty())
{
String divide[]=temp.split("\\.");
url="http://www."+divide[divide.length-2]+"."+divide[divide.length-1];
}
}
new Title().execute();
}
});
}
private class Title extends AsyncTask<Void, Void, Void> {
String title;
@Override
protected void onPreExecute() {
super.onPreExecute();
mProgressDialog = new ProgressDialog(MainActivity.this);
mProgressDialog.setTitle("Android Basic JSoup Tutorial");
mProgressDialog.setMessage("Loading...");
mProgressDialog.setIndeterminate(false);
mProgressDialog.show();
}
@Override
protected Void doInBackground(Void... params) {
try {
// Connect to the web site
if(url!=null && !url.isEmpty()) {
Document document = Jsoup.connect(url).get();
// Get the html document title
Elements description = document.select("link");
title = description.attr("href");
for (Element metaElem : description) {
String name = metaElem.attr("rel");
if (name.contains("icon")) {
title = metaElem.attr("href");
break;
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
// Set title into TextView
//TextView txttitle = (TextView) findViewById(R.id.titletxt);
textView.setText(title);
String imageURL=textView.getText().toString();
if(!textView.getText().toString().contains("http"))
{
String c=imageURL;
c=c.substring(0,1);
if(!c.equals("/"))
{
imageURL=url+"/"+imageURL;
}
else
{
imageURL=url+imageURL;
}
}
Picasso.with(MainActivity.this)
.load(imageURL)
.error(R.drawable.down_arrow)
.into(imageView);
//this is optional the image to display while the url image is downloading
//this is also optional if some error has occurred in downloading the image this image would be displayed
mProgressDialog.dismiss();
}
}
}